こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

エクセル VBA リストボックスからの動きについて

エクセルでどうにかできないかと悩んでおります。
自分一人ではいいアイデアが浮かばないので皆様のお知恵を拝借いたしたく出させていただきます。


Private Sub CommandButton1_Click()
With ListBox1
For i = 0 To .ListCount - 1
Windows("元データ.xls").Activate
If .Selected(i) = True Then
a = Cells(i + 2, 1)
b = Cells(i + 2, 2)


Windows("書き込みたいファイル.xls").Activate
With Range("A20").End(xlDown).Offset(1, 0)
.Offset(0, 0) = a
.Offset(0, 2) = b

という形で作っていますが、よく考えると『書き込みたいファイル』は
名前が色々変わってしまうファイルになっているので、それでも動くようにしたいのです。
上記2種類のファイル以外を閉じてしまう・・・という形は自分でも考えたのですが、
特定多数の人間が使うため、あまり制限をかけた状態では使いたくないのが現状です。

出来れば他のファイルを閉じたりしないようにしたいと思います。
皆様のお知恵をいただければ幸いと思いますので宜しくお願いいたします。

投稿日時 - 2008-05-29 09:20:17

QNo.4059049

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

まずはこのマクロはどのブックに記述されているのでしょうか?
元データ.xlsに存在するのであれば、ボタンをクリックする前にシートなりフォーム上なりにファイル名を記録しておく。
書き込みたいファイル.xlsに存在するのであれば、Thisworkbookを使うとか・・・

全く関係ない話ですが、windows("書き込みたいファイル名").Activate という書き方では、該当ブックにシートが1枚ならともかく複数シートがあった場合、意図した場所にデータの書き込みが出来ない恐れがあります。
Workbooks("書き込みたいファイル名.xls").Sheets("Sheet1").Activate
といった書き方のほうがよいと思います。

投稿日時 - 2008-05-29 16:59:29

あなたにオススメの質問