• ベストアンサー

別のブックから、特定のシートを指定して他のブックを開くには

マクロ初心者です。 A.xlsと、B.xlsという2つのブックがあります。 B.xlsはこの時、閉じた状態です。 Aには1つのシートのみがあって、Bには日毎に追加されていく不特定数のシートがあります。 Aのブックのシート内のセル番地A1に、「aaa」と入力した場合、B内の「aaa」という名前のシート名を指定してB.xlsを開くマクロはどう書いたら良いのでしょうか。 頼りきりの質問になってしまって申しわけございません。 何卒宜しくお願い申し上げます。

  • ho-so
  • お礼率72% (26/36)

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

マクロ記録を取ればある程度作れてしまうと思いますが、予め開くシート名を変数に取得しておく方が簡単でしょう。 A1セルに入力シート名が必ずあるならMacro1でよいですが、入力ミスなども想定しておくならMacro2の方がよいと思います。 ブックAとブックBが別フォルダに存在しているなら、4行目のOpenメソッドは "C:\WORK\B.xls" のようにフルパスで記述してください Sub Macro1() Dim wh As String   wh = Range("A1").Value   Workbooks.Open "B.xls"   Worksheets(wh).Activate End Sub Sub Macro2() Dim wh As String   wh = Range("A1").Value   Workbooks.Open "B.xls"   On Error GoTo err0   Worksheets(wh).Activate   Exit Sub err0:   Worksheets(1).Activate End Sub

ho-so
質問者

お礼

すばらしいです。 Macro2の方を使わせていただき、思い通りのマクロになりました。 1日がかりで悩んでいた所でしたので、助かりました。 本当に有難うございました!

その他の回答 (1)

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.1

ブックを起動後指定のシートを表示、となると思います。 ブック起動、指定のシートを表示はそれぞれマクロの自動記録で ある程度のコードが得られます。

ho-so
質問者

お礼

なるほど。参考になります。有難うございました。

関連するQ&A

  • マクロ(エクセルシートコピー先)に関して

    分かりましたら教えてください。 A.xlsのシートBを、新しいブックにコピーし移動するときに、そのブック名が、常にそのシートBのセルC3に入力されている文字の名前にするようにマクロを組みました。(....Filename:Range("C3")としています。) さらにC.xlsのシートDもその新しいブックにコピー移動させるマクロを追加したいのですが、コピー先をどのように指定すればいいのでしょうか。。

  • エクセル 特定のシートを異なるブックの指定したシートにコピーするマクロ

    エクセルの"貼り付け先.xls"の(シート名="集計")を開いている状態で、 別の異なるブックの"貼り付け元.xls"の(シート名="sheet1")の内容を全部コピーして "貼り付け先.xls"の(シート名="集計元データ")へ貼り付けるマクロは どのようになりますでしょうか? いろいろ調べて下記のように書きましたが、 インデックスが有効範囲にありませんというメッセージが出て、 デバッグを確認すると Workbooks("貼り付け元.xls").Worksheets("Sheet1").Range("A1").Copy_の部分が黄色く表示されてきます。 (1) "貼り付け先.xls"と"貼り付け元.xls"は同じパソコンのマイドキュメントに保存されています。 (2)"貼り付け元.xls"の"Sheet1"はセルA1から入力されていて、 内容は毎日変わります。 (3)Range("A1")や("A1:IV65536")のセル番地をいろいろ変えたりしても同じでした。 Sub クリップボードを経由せずにコピー貼り付けする_異なるブック() Workbooks("貼り付け元.xls").Worksheets("Sheet1").Range("A1").Copy_ Workbooks("貼り付け先.xls").Worksheets("集計元データ.xls").Range ("A1:IV65536") End Sub

  • EXCEL2003で別ブックのシートの名前の定義を使いたいのですが

    EXCEL2003を使っています。 A.xlsというブックのAAAというシートに「商品」という名前の定義をしたテーブルがあります。このシートAAAをB.xlsというブックにコピーし、B.xlsのシートBBBの中で入力規則の元の値として、VLOOKUPの範囲名として使いたいのですが、入力規則の場合は、「元の値はエラーと判断されます。続けますか?」というメッセージが出て使用できません。 このとき、A.xlsは別場所なので存在しません。名前の定義のあるシートを他のブックにコピーして使用するのは無理でしょうか?

  • ■ 他のブックのセル値を取り込むことは可能ですか?

    マクロで他のブックの特定のセルの値を取り込むことは可能ですか? 例えば、今A.xls B.xlsという2つのエクセルファイルを開いていまして、A.xlsの A4 の値を B.xls の G8 に入れたいのですが・・・。 説明分かりにくかったでしょうか? もしお分かりになった方がいらっしゃいましたら教えていただけないでしょうか? よろしくお願いします。

  • 変数が混じる名前のブックへのシート移動 マクロ

    いつもお世話になっております。 マクロ実行用Book=A.xls マクロ1で作成したファイル=●●日報.xls(●●の部分は、A.xls内のセル番地"AB2"にある文字列で、毎回変わります) マクロ2で作成したファイル=Book1.xls (1)A.xlsにて、●●日報.xlsを作成し、保存します(●●日報.xlsは保存後、閉じています) (2)マクロ2を実行し、Book1.xlsを作成します。 (3)Book1.xlsのシート(このブックにはシートは1枚のみです)を、A.xlsのブックの末尾に移動し、●●日報.xlsを上書保存する。 この場合、マクロのコードはどう書くのが適切なのでしょうか。 マクロ初心者のため、どなたかご教示いただけましたら幸いです。

  • 複数あるブックの特定シートの特定範囲を1つにしたい

    EXCEL2010を使用しています。 あるフォルダに格納されている複数のブックの、特定シートを、1つのシートにまとめたいです。 複数のブックの作りは同じです。 1つのブックに、複数シートがあり、"(配置)"というシートだけを、新規のシートにまとめたいです。 <今ある各ブック> ファイル名は、2014年度特定措置_●●.xlsで、●●だけ、ブック名が違います。 シート名が"(配置)"です。 c3セルに部署名が入っています。 b4セルからe10セルまで数式が入っています。 <行いたいこと> 新規のシートのa列に、各ブックにあるc3セルの部署名を持ってきたい。 b列からe列に、各ブックにあるb4セルからe10セルまでの数式を値張りし、取り込みたい。 以上です。 つたない説明で恐縮ですが、大変困っております。 どうか、ご回答の程、どうぞよろしくお願いいたします。

  • EXCELで別ブックのセルを参照 シートを替える

    EXCEL初心者です。 毎日四苦八苦しているのですが、行き詰ってしまったのでご教授ください。 使用しているブックをA.xlsとして、 別ブックB.xlsのセル参照を、 ='Z:\[B.xls]Sheet1'!$B$1 のようにしています。 この Sheet1 の部分のシート名をA.xlsの、例えばA1に入力することで、 毎回シート名を変えられるようにしたいのですが、 ='[B.xls]( ココ )'!$B$1  ココの部分をどのようにしてよいかがわかりません。 A.xlsのパス名から書けばよいのかなと思ったのですが、 どうもうまくいきません。 何分必要にせまられてEXCEL勉強し始めたばかりです。 初歩的な質問ですが、すみません、よろしくおねがいします。

  • 参照先をセルに入力して、他のブックのセルを参照する方法

    Excelで、他のブックのセルを参照したいです。 たとえば、あるExcel(test.xls)上から、別のフォルダにある複数のブック C:\AAA.xls D:\BBB.xls の値を参照する場合ですが(AAA.xlsとBBB.xlsは、値の内容は違うが、同じシート名の同じセルに値が入っている)、 test.xlsのSheet1のA1に「C:\」、A2に「AAA.xls」を入力すると、test.xlsのSheet2にはAAA.xlsの値を表示し、 test.xlsのSheet1のA1に「D:\」、A2に「BBB.xls」を入力すると、test.xlsのSheet2にはBBB.xlsの値を表示するような方法です。 参照先が固定であれば、='C:\[AAA.xls]Sheet名'!D5・・・のような指定ができるのですが、参照するファイル名とパス名が都度変わるので、入力したセルの値で参照先を変えたいのです。 ちなみに、INDIRECTを使うやり方も考えましたが、参照先のブックを開いていないと値が表示されないようなので、却下されました。 (参照先のブックは開かなくても値を参照させたいです) どなたかご存知の方がいらっしゃったら、教えてください。 よろしくお願いします。

  • Excel 同ブックの他シートを参照するセルを、他ブックのセルにコピー

    こんにちは。Excelの使い方について質問させていただきます。 よろしくお願いします。 Excel2003を使っています。 シート数、シート名がまったく同じブックが2つあります。 AブックのAシートのA1セルを参照しているセルである AブックのBシートのA1セルをコピーします。 BブックのBシートのA1セルにペーストします。 BブックのAシートのA1セルを参照して欲しいのですが、 別ブックであるAブックのAシートのA1セルを参照するように 自動的に変換されてしまいます。 シンプルにそのままコピーすることは不可能でしょうか。 セルのコピーでは無く、中の文字列を選択してコピーしても、 何が起こっているのかよくわかりませんが上手くいきません。 Excel初心者です。マクロはまったく使えません。 親切な方、どうぞよろしくお願いします。

  • エクセル マクロを使って指定範囲のデータを別のブックの特定のシートにコ

    エクセル マクロを使って指定範囲のデータを別のブックの特定のシートにコピーしたい。 Book1のsheet1内のA1:C5を A B C 1 東京 1月 2 1/1 りんご 50 3 1/2 みかん 70 4 1/3 バナナ 50 5 1/5 イチゴ 60 A1でコピー先のBook名を指定 B1でコピー先のSheet名を指定 東京(Book名)の1月(Sheet名)のA2:C6にコピーしたい。 両Bookは同一パス内にありコピー先のsheetも事前にできています。 どなたかよろしくお願いいたします。 マクロ内の行にコメントで解説を入れていただけると助かります。

専門家に質問してみよう