• ベストアンサー

ブック名をエクセルに貼り付けたい

開いているエクセルのファイルのブック名を、同様に開いているエクセルファイル「book1」の「sheet1」の「A1セル」から縦に順番に貼り付けたいのですが、どのようなマクロの記述になるでしょうか? 簡単にできると思ったのにできません。誰かお助けを・・・

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

Sub test01() i = 1 Dim wb As Workbook For Each wb In Workbooks MsgBox wb.Name Workbooks("Book1").Worksheets("Sheet1").Cells(i, "A") = wb.Name i = i + 1 Next End Sub でどうですか。

doudesyou
質問者

お礼

完璧でした。 ありがとうございます。

その他の回答 (2)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

Public Sub Books() Dim book As Workbook Dim i As Long i = 0 For Each book In Application.Workbooks Application.Workbooks("Book1").Sheets("Sheet1").Range("A1").Offset(i).Value = book.Name i = i + 1 Next End Sub

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

ブック内のSheet名の一覧取得なら公開されてるVBAがあります。 これを応用でできませんか? http://www.eonet.ne.jp/~gomame/excel/excel_midasi.htm 「8.マクロの小技」の「3.任意のExcelファイルを開いてSheet名を取得」

関連するQ&A

  • EXCEL 参照のリンクのコピペ を別のBookに

    Book1のSheet1のA1セルに 「=Sheet2!A1」 とシートをまたがったリンクがあります。 このような参照セルがA100セルまであり、参照先は無秩序です。 この縦100個のセルをコピーして Book2のSheet1のA1セルに貼り付けると 「=[Book1]Sheet2!A1」などのように [Book1]がくっついてきてしまいますが、実際に参照させたいのは同じBook内のSheet2!A1です [Book1]をはずして一気に100個の無秩序な参照先をBook2のSheet1に貼付けをする方法はありますか? もしなければ、マクロを使って、 "[" から "]" までを削除する方法でもかまいません。 宜しくお願いします。

  • Bookの参照をはずした形式でペーストする方法 エクセル

    以下2つのファイルがあります。 □Book1  Sheet1   A1セル =Sheet2!A1  Sheet2   A1セル 1 □Book2  Sheet1   A1セル =[Book1]Sheet2!A1  Sheet2   A1セル 2 Book2,Sheet1,A1セルは、 Book1,Sheet1,A1セルをコピーペーストした結果です。 この状態では、Book2,Sheet1,A1セルには"1"が表示されます。 Book2,Sheet1,A1セルに"2"を表示するために、 Book1,Sheet1,A1セルのコピーを Book2,Sheet1,A1セルに"=Sheet2!A1"としてペーストで入力したいのですが、 普通にペーストしたときは、上記の結果、 「形式を選択して貼り付け」→「数式」としても同じ結果となってしまいます。 どのようにすれば、Bookの参照をはずした形式でペーストできるのでしょうか。 よろしくお願いします。 Excel2003

  • エクセルのbookを開いたときに

    作成したエクセルのBookを開いたときに指定のシートを選択している状態にしたい。 エクセルで作成したBook「基本.xls」にa,b,cというシート3つがあります。 このブックを開いたときに必ずaというシートのセルa1が選択された状態にするにはどうしたら良いのでしょうか?

  • Book間でのコピー

    エクセルで以下の処理を実行するマクロを知りたいのですが。 Book1とBook2が開いています。 Book2のSheet1のA1~A10を、Book2のSheet1のA1~A10にコピーします。 この処理を任意の2つのBook間で実行するためにはどんなマクロになるでしょうか。(Book3とBook5で行ったり、Book25とBook46で行ったり等) アクティブになってないBookからアクティブになっているBookにコピーするようにしたいのですが。 宜しくお願いします。

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

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

  • excelで任意のブックの特定範囲の値を返す

    会社で使っているソフト(Xソフトとします)から、デスクトップに出力されるexcelファイルがあります。 そのファイルに出来上がっている全てのシートの同じセル範囲から、 ひとつのexcelファイルに値を抜き出したいと考えています。 いきなり範囲で抜き出すのは難しいかと思い、とりあえずひとつのセルの値を抜き出せないかと試行錯誤しています。 book1のA1セルに、book2****のD1セルの値を入力したい場合 book1のA1セルに以下のように入力していますが#REF!と表示されてしまいます。 =indirect("'["&B1&".xls]"&C1&_1&"!D1") Xソフトから作成されるexcelファイルの名称が、作成した日時を反映するようになっているため、book2****の****部分には日時が入ると思ってください。つまり、book2の名称は Xソフトからデスクトップに保存する度に変化してしまいます。 また、book2****に作成されるシートはXソフトから取り出したいデータ量によって変わり、 その名称はbook2****の各シートのC1セルの文字列に_1、_2、、、、と連番になる仕組みになっています。 そのため、book1のB1セルにbook2のファイル名称を入力し、 シート名はbook2****のC1セルの文字列と_1(、_2、、、)を組み合わせることで D1セルの値を返したいと思っています。 マクロやvbaの経験はあまりないため、関数でがんばっているのですがうまくいきません。 本当は、Xソフトから作成されたファイルをクリックするだけで読み込めるような仕組みが作れるのが理想なのですが、なかなかできず困っています。 どなたか詳しい方おりましたら教えてください。よろしくお願いします。

  • ハイパーリンクをつなげたコピペを実行するマクロ

    開いているエクセルのファイルの各シートの「A1セル」を取得し、「sheet1」の「A1セル」から縦に順番にハイパーリンクを繋げた状態で貼り付けたいのですが、どのようなマクロの記述になるでしょうか? 例) シート名が「Sheet1」「A」「B」「C」の4枚あったとして、A~CのそれぞれのシートのセルA1には1~3の数値が入力されている場合 シート名:A1セル A :1 B :2 C :3 ↓ Sheet1のA1セルから縦に順番に1、2、3をコピペする。(ハイパーリンクつき)

  • マクロで5個のBOOKのデータをBOOK1に転記

    エクセルマクロで対話型でBOOK2~6の5個のデータを BOOK1のシート1に順番で転記したいです。 BOOK2~BOOK6は作業者にファイルを選択させたいです。 BOOK2~BOOK6は作業の都度行数がBOOKごとに変わります。 (500~5,000行でばらつきます) 流れとしては、 1.BOOK1を開いてマクロを軌道 2.エクセルのファイルを開くウィンドーが出る 3.ファイルを選択させる(例:マイネットワーク内のBOOK2を選択) 4.ウィンドーの開くをクリックする 5.転記1回目   指定したファイルが開いてデータが   BOOK1のシート1に転記される   この1回目は1行目からデータがある最終行まで。   その後BOOK2は閉じられる 6.メッセージボックスで「転記完了」と表示 7.メッセージボックスの「OK」をクリックすると   エクセルのファイルを開くウィンドーが出る 8.ファイルを選択させる(例:マイネットワーク内のBOOK3を選択) 9.ウィンドーの開くをクリックする 10.転記2回目   指定したファイルが開いてデータの中の2行目~最終行までを   BOOK1のシート1の最終行の次の行から転記を行う。   (NO.5のBOOK2が1,000行の場合1,001行目から    BOOK3のデータ2行目以降が転記される)   その後BOOK3は閉じられる 11.この作業を計5回行う   (転記3~5回目も転記するデータは2行目~最終行) 13.メッセージボックスで「5個のBOOKの転記が終了」と表示 14.メッセージボックスの「OK」をクリックすると   Call 編集   でSub 編集 というプロシージャーが起動する Sub 編集は出来上がってます。 (BOOK1のシート1を編集します。) NO.1~NO.14のマクロ記述を教えてください。 自分で作成した記述では全然駄目でした。 よろしくお願いします。

  • ブック名を変数にしたらアクティブになりません。

    色々と調べたり試したのですが、どうしても判らないので質問させてください。 Excel2002でマクロを組んでいます。 セル上の数値を使って、ブック名を変数に格納しました。 したい事は、「DataBase.xls」のCalendarシートの内容を 「07年6月売上.xls」のとあるシートに値貼り付け です。 格納した変数 Dim Uriage As String Uriage = Worksheets("設定").Range("A4") & "年" & Worksheets("設定").Range("B5") & "月売上.xls " 上記のブックを開き、マクロを記述したブックに戻り、 再度上記のブックをアクティブにしようとすると 「有効範囲にありません」とメッセージが出ます。 デバッグ状態で記述を見てみると 1 Windows("DataBase.xls").Activate (←マクロ記述のブック名) 2 Sheets("Calendar").Select 3 Range("B7:H7").Select 4 Selection.Copy 5 Windows(Uriage).Activate (←変数格納したブック名) 5番でとまっています。 ですが、オンマウスにするとちゃんと「"07年6月売上.xls"」と表示が出ます。 それ以前に、ファイルを開くことは出来てるのに・・・・ いったいどういう事なのか、どうかご教示ください。 宜しくお願いします。

  • Excelのブック内のシート名を順番に表示させる

    類似の質問を探していろいろ試してみたのですがどうしてもうまくいかなくて・・・教えてください。 ブック内にシートが複数枚あるとします。 最初の1枚目のシートは一覧表となっておりそのシートのセルA1から順にA2、A3…と下に表が続いています。 セルA1には2枚目のシート名が自動的に入力される セルA2には3枚目のシート名が自動的に入力される というようにブック内にあるシート名を順番に セルに表示入力できる方法はありますか? ちなみにVBAはほとんど触ったことはありません。 よろしくお願いします。

専門家に質問してみよう