プロが教えるわが家の防犯対策術!

エクセルのブック間でテキストを串刺しする方法を教えてください。

50個くらいあるブックの各々の同じシートの同じセルに同じテキストを入力したいと思っています。
計算式で大元ブックを参照する形式ではなく、各々のブックにテキストを打たなければなりません。

方法をご存知でしたら教えてください。
よろしくお願いします。

A 回答 (1件)

> 方法をご存知でしたら教えてください。



同一BOOK内で各シートの同一アドレスのセルに串刺しで入力するなら簡単ですが、複数BOOKに対して同様なことをする方法を寡聞にして存じません。
多分無いのだと思います。
で、無ければ一件ずつ手入力するか、自分のかわりにやってくれるマクロを作るしかないですね。
わたしならものぐさなので当然マクロでやります。

以下の前提でマクロを作成しました。
・対象となるBOOKはすべて同一フォルダー内にある。
・そのフォルダーにはこのVBAコードを書いたBOOK以外には対象外のBOOKは存在しない。
・書き込む先はSheet1のA1セルとしました。
・書き込むテキストは「お好きな文字列」としてみました。

手順は以下のとおりです。簡単ですよ。

1.新しいBOOKを開き、AltキーとF11キー同時に押し(以下Alt+F11キーと記述)て Visual Basic Editor を呼び出します。
2.Visual Basic Editor のメニューから「挿入」、「標準モジュール」で出てきたコードウィンド(右側の白い広い部分)に以下のコード(Sub~End Sub)をコピペします。

'********これより下**********

Sub test01()
Dim mb As Workbook, wb As Workbook
Dim myFd As String, myFn As String

Set mb = ThisWorkbook 'このブックをmbとする。
myFd = mb.Path 'フォルダー名取得
myFn = Dir(myFd & "\*.xls") 'フォルダ内のExcelブックを検索
Application.ScreenUpdating = False '画面更新を一時停止
Do Until myFn = Empty '全て検索
If myFn <> mb.Name Then 'ブック名がこのブックの名前でなければ
Set wb = Workbooks.Open(myFd & "\" & myFn) 'そのブックを開きwbとする。
wb.Sheets("Sheet1").Range("A1").Value = "お好きな文字列"
wb.Close (True) '開いたブックを保存して閉じる
n = n + 1 'ブック数をカウント
End If
myFn = Dir 'フォルダ内の次のExcelブックを検索
Loop '繰り返す
Application.ScreenUpdating = True '画面更新一時停止を解除
MsgBox n & "件のブックに入力しました。", , " ( ̄ー ̄)v"
End Sub
'********これより上**********

3.Alt+F11キーでワークシートへもどります。
4.名前を付けて対象となるBOOKがある一フォルダー内に保存する。
5.Alt+F8キーで出てきたマクロ名(test01)を選択して実行します。
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。
やはりブック間では無理なんですね。
マクロありがとうございます。
私も少しいじれるので活用させていただきます!

お礼日時:2010/01/10 23:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!