excel VBA マクロ 他のブックの指定方法

このQ&Aのポイント
  • excelのVBAにて、他のbookへのマクロの書き込みと実行方法を教えてください。
  • Abookから他のbookを開いた状態で特定のファイルに書き込む方法と、複数のファイルに開いた状態で特定のファイルを見つけて書き込む方法を知りたいです。
  • excelのVBAを使用して、他のブックにマクロを書き込む方法と特定のファイルを見つけて書き込む方法を教えてください。
回答を見る
  • ベストアンサー

excel VBA マクロ 他のブックの指定方法

こんにちは、 excelのVBAにて、Abookのマクロを他のbookへ書き込み(実行)をしたいのですが、 以下2パターンにおいて、どのように指定をしたらよいか教えてください。 1:"A"bookと書き込み(実行)したいファイルの"○×△見積"bookの2ファイルのみを開いている状態において Abookから、 Windows("○×△見積.xlsx").Activate とファイル名指定をせずに、ThisWorkbook以外という指定方法を知りたいです。 2:"A"bookと書き込み(実行)したいファイルの"○×△見積"bookの他に複数のファイルが開いている際に、 Abookから、”見積”の名前がつくファイルを見つけて書き込み(実行)する方法を知りたいです。 どうぞ宜しくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

dim w as workbook for each w in workbooks  if w.name <> thisworkbook.name and not w.name like "PERSONAL.*" then  msgbox w.name 'その他のブックを取得  if w.name like "*見積*" then   msgbox w.name '見積りブックを取得  end if  end if next

bin-bou
質問者

お礼

ありがとうございました、できました!

その他の回答 (1)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

あー,言わずもがなと思いましたが念のため。 先の回答は,目的の「他のブック」のブック名を調べてどうこうする,という回答をしたワケではありませんよ。(たまにですがそういう勘違いをされる方がいらっしゃったのを思い出しました) その他のブックを取得の例: dim w as workbook for each w in workbooks  if w.name <> thisworkbook.name and not w.name like "PERSONAL.*" then   w.workhseets(1).range("A1") = "hello" '又は必要に応じてシート名を指定し操作する  end if next

関連するQ&A

  • excel 他ブックからセルを範囲で取得する方法

    Abook.xlsx、B1book.xlsx、B2book.xlsx、B3book.xlsxというファイルがあります。 B1book~B3bookは同じフォーマットになりますが、Bbookのセル範囲(A1:C7)を Abookの「集計シート」にセットしたいのですが、コードでの記述をご教授 頂けませんでしょうか。 Abookのイメージ    A      B ・・・・・・H  1 B1book.xlsx  A1・・・・・・A7  2         B1・・・・・・B7  3         C1・・・・・・C7  4 B2book.xlsx  A1・・・・・・A7  5         B1・・・・・・B7  6         C1・・・・・・C7  7 B3book.xlsx  A1・・・・・・A7  8         B1・・・・・・B7  9         C1・・・・・・C8 このようなイメージになります。 よろしくお願いします。

  • マクロ 別のブックを指定。

    エクセルマクロで特定の文字を含んだファイルを指定したいのですが、 ファイル名がその都度、book1,book2,book3,のように変わります。 Range("a1").Select Windows("Book10").Activate Range("a10").Select End Sub このような記述だと、book10にしか指定できず、bookを含むファイルを指定したいのですが どのようにしたらよろしいのでしょうか。 開いているbookを含むファイルは1ファイルのみです。                宜しくお願いいたします。

  • Excel VBAで他のブックを選択する方法を教えてください。

    こんにちは。VBA初心者です。 ブックを2つ開いた状態で、 マクロを保存してあるブック〔Book1〕から、 毎回ブック名が異なる[Book2]の選択されている2枚のシートを新しいブックに(仮Book3)コピーしたいのですが、どのように記述したらよいのでしょうか。(選択されるシートも毎回異なります。) 特に教えていただきたい部分は、 1.マクロが記録されているBOOK1以外のBookを操作する方法。 2.私以外の方が利用する為、Book1に保存したマクロから実行させる予定なのですが、Book1を毎回開いて実行させる方法がベストのやり方なのでしょうか。 マクロの記録では下記の感じになります。 Sub Macro4() Windows.Arrange ArrangeStyle:=xlVertical Windows("Book2.xls").Activate Sheets(Array("Sheet3", "Sheet4")).Select Sheets("Sheet4").Activate Sheets(Array("Sheet3", "Sheet4")).Copy End Sub 宜しくお願い致します。

  • Excelマクロで同じブックにCSVを読み込むには

    Excelの指定したシートにCSVファイルを読み込ませたいのですが 以下のVBAマクロを実行すると新しいブックが起動して 新しいブックの方にCSVファイルが読み込まれてしまうのですが これをVBAマクロを実行しているブックの指定のシート(例えばSheet3など)に 読み込ませたいのですがどのように記述すればよいのでしょうか。 よろしくお願いします(Excel2010) Sub Macro1()  ChDir "C:\test"  Workbooks.Open Filename:= "test1.csv" End Sub

  • ブックを開くマクロ

    マクロを使って、今開いているブックから他のブックを開くというマクロを考えています。 Workbooks.Open Filename:=ThisWorkbook.Path & "\○○.xls" でブックを開くところまでいったのですが、開いたブックから、元のブックに戻るマクロがどうしても分かりません。名前を指定すれば元のブックに戻ることはできますが、元のブックは名前が変わってしまうものなので、指定できません。そのような場合はそうすればいいのでしょうか?

  • エクセルVBAでブックを開くとマクロを実行するようにしたいのですが

    ブックを開くと同時に開いたシートを保護するようにしたいのですがうまくいきません。通常(?)ボタンを作っておいて押すと実行すると思うのですが、そうせずにブックを開くと実行するようにならないかと思っています。保護をするコードはわかるのですが、どこにそれを書き込んだらいいのかもわかりません。VBAプロジェクトを見るとSheet1,Sheet2,ThisWorkbook,UserForm1とありますが、そのうちのどこかに置くのでしょうか?

  • Excel VBAを後ろで動かす方法

    VBAが書かれたEXCELのブックがあります。これは、一定時間ごとに処理を行います。その間、別のEXCELブックをひらいて、アクティブにしておきます。そして、VBAが書かれたEXCELファイルの一定間隔ごとの処理が呼ばれたときに、エラーメッセージが表示されます。 エラーメッセージ  実行時エラー 1004  RangeクラスのSelectメソッドが失敗しました。 エラー発生箇所  ThisWorkbook.Sheets("シート1").Range("A2:AZ")).Select エラー発生箇所の前に ThisWorkbook.Activate を入れるとエラーが発生しませんが、画面が切り替わってしまいます。 画面が切り替わらずに、処理を続ける方法を教えてください。 宜しくお願いします。

  • 他ブックのマクロの実行

    エクセル VBAにて ブック1のマクロからブック2のマクロを実行するにはどうすればよいですか?

  • EXCEL VBA 他ブックのシートのコピー方法

    今開いているブックに、開いていない他のブックのシートをコピーする記述方法を教えて頂けませんでしょうか。(Office365を利用)  開いているブック :A.xlsx  シート:a  開いていないブック:B.xlsx  シート:b bをaの後ろにコピーする方法を教えてください。aにボタンを置いて、それをクリックしたらという方法でも構いません。 よろしくお願いします。

  • エクセルのブックを閉じるマクロについて

    エクセルのブックAとブックBが開いている状態で、 ブックAのボタンに登録して実行すると、ブックAのみ閉じる、 というマクロを作りました。(下部にコードを記載します) このマクロは、2つのブックが開いていると正常に稼働するのですが、 ブックが1つしかない場合、実行時エラーが出てしまいます。 (ブックAのみ開いた状態でこのボタンを押してもエラーなく閉じたい) 実行時エラーが出ないようにするにはどうすれば良いか、 おわかりの方がいらっしゃいましたら教えて下さい。 どうぞよろしくお願い致します。 Sub このブックのみ閉じる() Dim wa As String wa = "ほかに無い" Dim wb As Workbook For Each wb In Workbooks If wb.Name <> ThisWorkbook.Name Then wa = "ほかにあるよ" End If Next If wa = "ほかに無い" Then Application.DisplayAlerts = False Application.Quit '終了予定 End If Range("D2").Select Selection.ClearContents ThisWorkbook.Close SaveChanges:=False End Sub

専門家に質問してみよう