- PR -

spredで特定のセルの内容だけコピー。

1
投稿者投稿内容
シラブル
会議室デビュー日: 2007/03/07
投稿数: 7
投稿日時: 2007-03-08 16:05
VB2005環境です。
Spreadをデフォルトで行選択モードにし、どこかの行を選択した時に
Ctrl+Cを押すと、左から2番目のセルの値だけがクリップボードに保存される
ということをやりたいと考えています。
また、グリッドの項目は編集不可です。

もし上のようなことが実現可能でしたら、サンプルコードを交えて
教えていただけないでしょうか?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-03-08 17:36
引用:

シラブルさんの書き込み (2007-03-08 16:05) より:

Spreadをデフォルトで行選択モードにし、どこかの行を選択した時にCtrl+Cを押すと、左から2番目のセルの値だけがクリップボードに保存されるということをやりたいと考えています。


上位のキーを処理するメソッド (ProcessCmdKey など) で、Ctrl + C を捕捉して、
自前で Clipboard にセルの内容を詰め込むというのはどうでしょうか。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
シラブル
会議室デビュー日: 2007/03/07
投稿数: 7
投稿日時: 2007-03-08 21:16
レスありがとうございます。
いろいろ試してみたのですが、Ctrl+Cについては、2つIf文を使って
解決しました。
If e.KeyCode = Keys.C Then
If e.Control Then
msgbox("ctrl+cを取得")
End If
End If

あとはClipboard.SetDataObjectを使って、セルの値を入れればいいんだと
思うのですが、Spreadで常に2列目の値を取得する方法がわかりません。
(GetValueとかそれらしきものはあったのですが…)。

指定したセルの値を取得する方法を教えていただけないでしょうか?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-03-08 22:38
引用:

シラブルさんの書き込み (2007-03-08 21:16) より:

あとはClipboard.SetDataObjectを使って、セルの値を入れればいいんだと思うのですが、Spreadで常に2列目の値を取得する方法がわかりません。
(GetValueとかそれらしきものはあったのですが…)。

指定したセルの値を取得する方法を教えていただけないでしょうか?


そちらのご質問の方が簡単だと思うのですが... Cells インデクサから取得できるはずです。
Cells インデクサには、Active な Row と、Column 2 固定で引数を渡します。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
シラブル
会議室デビュー日: 2007/03/07
投稿数: 7
投稿日時: 2007-03-09 12:11
レスありがとうございます。
ご指摘の方法で実現できました。
ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)