tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルエクセルに結果を貼り付けたい。
記事No14863
投稿日: 2010/08/20(Fri) 16:11
投稿者ミヤ
初めまして、よろしくお願いします。
VB上で計算させて、その計算結果をエクセルに貼り付けたいと思います。
ユーザがマウスで選択したセルに貼り付けしたいのですが、
どのセルが選択されたかVB6上で認識するにはどうすればよいのでしょうか?

[ツリー表示へ]
タイトルRe: エクセルに結果を貼り付けたい。
記事No14864
投稿日: 2010/08/20(Fri) 18:30
投稿者るしぇ
> どのセルが選択されたかVB6上で認識するにはどうすればよいのでしょうか?
VB6上で宣言したエクセルオブジェクトのイベントを取得します。

当サイト内検索キーワード『Excel Withevents』

[ツリー表示へ]
タイトルRe^2: エクセルに結果を貼り付けたい。
記事No14866
投稿日: 2010/08/24(Tue) 15:54
投稿者ミヤ
> > どのセルが選択されたかVB6上で認識するにはどうすればよいのでしょうか?
> VB6上で宣言したエクセルオブジェクトのイベントを取得します。
>
> 当サイト内検索キーワード『Excel Withevents』

お世話になっています。
ここを参考に下を追加したら、自分が選択したシートの(1,C)セルに1を書き込み出来ました。
ただ、自分がやりたいのは、ユーザーがアクティブにしたセルにデータを書き込むことです。
コメント部分を追加すればアクティブのセルが取得できるかと思い、追加しましたが、
「Excel.Cells」の部分で「ユーザー定義型は定義されていません。」とエラーが出ます。
「Excel.Cells」が使えないと思うのですが、アクティブなセルを取得するには
どうすれば良いのでしょうか?
Excel.と入力した後に候補が出ますが、Cellが存在しません。

Private WithEvents xlApp As Excel.Application
Private WithEvents xlWb As Excel.Workbook
Private WithEvents xlWs As Excel.Worksheet
'Private WithEvents xlCl As Excel.Cells

Private Sub Command1_Click()
 Set xlApp = GetObject(, "Excel.Application")
 Set xlWb = xlApp.ActiveWorkbook
 Set xlWs = xlWb.ActiveSheet
 'Set xlCl = xlWs.ActiveCells
 xlWs.Cells(1, "C") = "1"
End Sub

[ツリー表示へ]
タイトルRe^3: エクセルに結果を貼り付けたい。
記事No14867
投稿日: 2010/08/24(Tue) 16:59
投稿者るしぇ
Excel には Cells というオブジェクトも Cell というオブジェクトも
存在しません。ここで利用しているのは Excel.exe に用意された機能です。
VB からは命令を出しているだけで、実際の処理は実行環境にインストール
されているエクセルが行なっています。
このため、Excel VBA で操作するコードとほぼ同等になります。
不明点は Excel VBA のヘルプで調べるようにしてください。

ActiveCell プロパティのヘルプを読んでください。
> オブジェクトを返すプロパティです。最前面に表示されている、
> アクティブ ウィンドウまたは指定されたウィンドウでのアクティブ
> セル (Range オブジェクト) を返します。
Range オブジェクトになります。

# ついでに言えば、ActiveCell プロパティは Excel.Application か
# Excel.Window のメンバなので Excel.Worksheet の下にはいません。
# (当方、Excel2003 で確認)

[ツリー表示へ]
タイトルRe^4: エクセルに結果を貼り付けたい。
記事No14884
投稿日: 2010/08/31(Tue) 21:28
投稿者ミヤ
ありがとうございます。
とりあえず、クリックしたセルに結果を貼り付けることができました。

[ツリー表示へ]