• ベストアンサー

エクセルマクロで特定シートの特定セルの中身取得

エクセルのマクロで、ファイル選択(GetOpenFilename)で取得したファイルの特定のシート(sheet1等固定のシート名)とそのシートの特定のセル(A1等固定のセル)にある数値を取得し、マクロ起動したエクセルのあるセルに貼り付けたいのですが、どうすればよいでしょうか。 かなり略してますが、 nama=GetOpenFilename で選択したファイルのファイル名を Range("A1") = Dir(name) で貼り付け、その横のセル(A2)に name#sheet!A1を貼り付けたいのです。 ご存知な方、すみませんが教えていただけますでしょうか。 (エクセルは2003です。)

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

  • ベストアンサー
  • myRange
  • ベストアンサー率71% (339/472)
回答No.3

Sub test()  Dim myName As String  myName = Application.GetOpenFilename("Microsoft Excelブック,*.xls")  If myName <> "False" Then   Workbooks.Open myName   With ThisWorkbook.Sheets("Sheet1")    .Range("A1").Value = Dir(myName)    .Range("A2").Value = ActiveWorkbook.Sheets("Sheet2").Range("B1").Value   End With   ActiveWorkbook.Close False  End If End Sub '-------------------------------------------------- >.Range("A2").Value = ActiveWorkbook.Sheets("Sheet2").Range("B1").Value これのAcctiveWorkbookは省略して .Range("A2").Value = Sheets("Sheet2").Range("B1").Value としてもいい。 以上です。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (4)

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

>Range("A1") = Dir(name) で貼り付け、その横のセル(A2)に name#sheet!A1を貼り付けたいのです。 これは質問者の我流で良くわからない。下記のように文章ではっきり質問に書くこと。 今あるブックが開いていて(ThisworkBook)、そのブックにVBAコードを書く VBAで別のブックを開くためファイル選択(GetOpenFilename)させる その指定されたブックを開く。 そのブック名をThisworkBookのSheet1??のA1セルに書く またThisworkBookのSheet1??のA2には、選択したブックのShhet1のA1セルの値を書きだす。 === A1についてはコードが判っているようだ。 長々質問を書いているが、 これって、他ブックのセルの値の参照の質問にしか過ぎないのでは? Googleででも「VBA 他ブック参照」で照会すればすぐわかるよ。 また 実際他ブックの操作をマクロの記録でやってみればコードの形はわかるのでは。 Sub Macro1() Workbooks.Open Filename:= _ "C:\Documents and Settings\XXXX\My Documents\YYYY.xls" Range("D11").Select Range("D11") = "asdd" x = ActiveCell Windows("YYYY.xls").Activate ActiveWorkbook.Worksheets("Sheet1").Range("A8") = x End Sub このファイル名はダイアロウグで選択のコードに置き換える。

全文を見る
すると、全ての回答が全文表示されます。
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.4

>マクロ起動したエクセルのあるセルに貼り付けたいのですが、どうすればよいでしょうか。 マクロ起動したブックはThisWorkbookです Set WB = Workbooks.Open(nama) ThisWorkbook.Worksheets("Sheet1").Range("A1").Value = WB.Name ThisWorkbook.Worksheets("Sheet1").Range("A2").Value = WB.Worksheets("Sheet1").Range("A1").Value

全文を見る
すると、全ての回答が全文表示されます。
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.2

>かなり略してますが、 >nama=GetOpenFilename で選択したファイルのファイル名を >Range("A1") = Dir(name) で貼り付け、その横のセル(A2)に ブックを開く処理まで略してはいけません! Workbooks.Open (nama) ActiveWorkbook.Worksheets("Sheet1").Range("A1").Value = Dir(nama)

全文を見る
すると、全ての回答が全文表示されます。
  • Trick--o--
  • ベストアンサー率20% (413/2034)
回答No.1

Workbooks(ブック名).Worksheets(シート名).Range(セル範囲)

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VBA アクティブなセルのシート名を取得したい

    エクセル2010使用です。 VBAで、アクティブなセルのあるシート名を取得する方法を教えてください。  マクロ.xls (マクロシートA1) ←今回のマクロを書き込んだファイル  参照.xls (参照シートA1)  入力.xls (入力シートF3) この3つのエクセルファイルを開きます。 ( )内はそれぞれの前面にあるシート名と選択されたセルです。 入力シートのF3にカーソルをおいて下記マクロを実行すると   MsgBox ActiveSheet.Name & ActiveCell.Address 「マクロシート F3」と返されます・・・ ほしい結果は「入力シート F3」なんです。 このような場合にアクティブセルのあるシート名を取得する方法があれば教えてください。 よろしくお願いいたします。

  • エクセル・マクロ・・・シート名の取得等

    エクセル・マクロ・・・シート名の取得等 エクセルのマクロで質問です。 ほぼ初心者です。 社内データの処理をしたいと考えています。 マクロを組みたいエクセルブックの構成としては・・・ シート名一覧 集計シート 操作 という3つのシートがあり、 その後ろに各社員のデータシートがあります。 山田太郎 田中花子 ・ ・ ・ 部署により社員数が異なるためシートの4枚目以降は そのエクセルファイルによりシート数が異なります。 やりたいことは以下の2点です。 (1)シート名(社員名)の取得 シート名一覧に各シート名を一行ずつ入れて 一覧を作りたいです。 シート名取得&リスト化のマクロは大体わかりますが、 「シート名一覧」、「集計シート」、「操作」の3つのシート名は 一覧から外したく、どうしたらいいのかわかりません。 また、各シート名を取得した列の横の列に 各社員のシートにあるデータの一部(セルC5:C8)を 貼り付けたいです。 (2)集計シートに各社員のシートのD列の情報(D6:D43)を順に貼り付けていく。 シート名や数が固定されたものであれば何とかできそうなのですが、 不特定になるとどうしたらよいかさっぱりわかりません。 どなたかご教授お願いいたします。

  • EXCELのすべてのシートから特定セルの値だけを別のシートに書き出すには

    excelのマクロで別のEXCELファイルを選択して、たとえば、A3、E4、F10のセルの値だけをそのファイル内のシートすべて(シート数は変化)に対して別のEXCELファイルの1シートに各項目としてまとめて書き出すマクロを教えて下さい。 宜しくお願いします。

  • エクセルマクロ特定のセル

    マクロの勉強したばかりですみませんが、 エクセル2003で、特定のセルが選択されたときにマクロを実行したいのですが、可能でしょうか? どうやればよいか教えていただきたいです。

  • 全シートを選択し、それぞれ特定のセルの値をシート名とするマクロを教えて

    全シートを選択し、それぞれ特定のセルの値をシート名とするマクロを教えてください。 Worksheets.Select ActiveSheet.Name = Range("A1").Value ではダメなんですね… 記録マクロ以上のことはほとんど何もわからない、マクロ初心者です。 条件としては、  ・シート数はその都度変わる  ・シート名にしたいセル番地は決まっている です。 具体的には、「請求書」などの決まったフォーマットで作成された複数のシートがあり、 決まったセルに入力された「宛名」をそれぞれのシート名にしたい というような場合です。 また、同じ「宛名」で複数のシート名があったときに備えて、 新しいシート名の前に数字を振りたいです。 例) Sheet 1 → 1田中様 Sheet 2 → 2佐藤様 Sheet 3 → 3山田様 Sheet 4 → 4鈴木様 Sheet 5 → 5山田様 のように。 数字は識別できればいいので(エラーがでなければいいので)、なんでも構いません。 シートに順に番号を振るのでも、元のシート名の一番右を取るのでもいいです。 (そんなマクロがあるのかもわからないのですが) 宛名が複数あるものだけ選んで番号を振るのでもいいのですが、大変そうな気がするので・・・ マクロ自体よくわかっていないので、情報が不足しているかもしれませんが、 詳しい方、教えてください。 よろしくお願いいたします。

  • エクセルのシート名の取得方法

    エクセルのファイルを2つ以上開いている場合、例えばAファイル上のシート1のセルにBファイルの全シート名を取得し、入力させることは可能でしょうか。アクティブファイルの全シート名取得のマクロはあるのですが、非アクティブファイルの全シート名をアクティブファイルのシートに入力させるという方法はなかなか参考になるものがありません。 わかる方教えてください。

  • エクセルでシート名をセルに複写(リンク)する方法

    いつも参考にさせていただいております。 さて、エクセルのワークシート名を取得して 特定のセル(例えばA2等)に入力する方法を調べております。 ボタンを作っておいて押したら記入される方法ではなく、 ワークシートの名前を変更したと同時に セルも変更される方法はないでしょうか?

  • エクセルのマクロでセル選択するには

    初心者です! エクセルのSheet1に30箇所のセルをマクロで選択したいのですが、 たまに選択するセルが変わります。 そこで、Sheet2のA1から下へSheet1の選択する位置を「B2」「C5」「D10」・・・としてマクロで一発で30箇所のセルを選択する方法を教えてください Sheet2のA1から下へ入力するセル位置はその都度変化します。 変化したときにそのマクロを実行すると選択できるといいのですが!! よろしくお願いします。

  • VBAを使い、同一フォルダにあるファイルの特定のシートの情報を取得したい

    はじめまして。 書籍や過去の質問等を調べましたが、類似するものを見つけられなかったため質問させていただきます。 Xというエクセルファイルで、Xと同一フォルダ内にある、ファイル名に特定の文字列(例えば「月報」)を含んだ全てのエクセルファイルの、特定の文字列(例えば「○年○月」)を含んだ全シートの、一定のセル範囲をひとつのシートにまとめたいと思っています。 X内のコマンドボタンで動かす予定ですが、複数のボタンになると自分では思っています(ボタンAでファイル名の取得、ボタンBでシートの取得、ボタンCでセルに貼り付け、みたいな感じで。ボタンの数は特に制限はないです) 要点としては a, 定定の文字列を含んだファイル名の取得 b, aで取得したファイル内の特定の文字列を含んだ全てのシート内の一定のセル範囲の取得(シートの数はファイルによる。必ずしも1つというわけではない。) c. bで取得した一定のセル範囲のデータを、1つのシートにまとめる。 あとはこれらのデータをtxtやcsvなどに出力できるようにするつもりです。 私がやってできたのは、同一フォルダ内にあるファイル名に特定の文字列を含むファイルの全てのファイル名を指定したセルに吐き出すことしかできませんでした。 なんか、ややこしい表現かもしれませんが、ご指導お願いします。 環境はxp、エクセル2003です。 よろしくお願いします。

  • Excelのシート名の取得について

    Excelのシート名の取得について セルの式でシート名を取得することはできますか? ページヘッダーやフッターでは &[シート名] を指定すると、シート名が取得できますが、 セルの式で =&[シート名] などと入れてもエラーになるのですが、マクロを使うなどしなければシート名は取得できませんか?

エラーメッセージが消えない
このQ&Aのポイント
  • MFCJ998DNを使用している際に、ディスプレイに「エラーメッセージ44 印刷出来ません」と表示され、室温が高温とされていますが、問題ないと思われるため、エラーメッセージを消すことができません。
  • 使用しているMFCJ998DNで「エラーメッセージ44 印刷出来ません」という文言が表示され、室温が高温だとされていますが、実際に問題はないため、エラーメッセージを消す方法がわかりません。
  • MFCJ998DNを使っていると、ディスプレイに「エラーメッセージ44 印刷出来ません」と表示され、室温が高温だというメッセージが表示されますが、問題ないと考えられるため、エラーメッセージの消し方が分かりません。
回答を見る

専門家に質問してみよう