• 締切済み

EXCEL Sheet名指定

いつもお世話になります。 EXCELにてFILE1.xls ⇒ Sheetが1日~31日まであります。 FILE2.xls からリンクして集計するのですが 式:サンプル ='[FILE1.xls]1日'!G7 上の式の1日の部分がSheet指定ですが、 例えば、FILE2のA1に1日と指定したら FILE1のSheetの1日にリンクさせる。 例えば、FILE2のA1に2日と指定したら FILE1のSheetの2日にリンクさせる。 FILE2のA1セルに指定した日にちによりSheet名を自動変動 させるにはどのようにすればよいのでしょうか? INDIRECT関数にて可能ですが、FILE1と2を同時に 開かないとREFエラーになるため、INDIRECT以外での方法を 教えて頂けたらと思います。 関数・マクロでも構いませんのでお願いいたします。 どなたか、ご教授下さい。

みんなの回答

回答No.3

shogo814さん 今日は! 回答者のimogasiさんの回答の通りです。 Excelの立上を関数で? そもそも関数がどのような意味か勉強して頂きたいですね。 ■マクロの自動記録(Excel2003)↓ http://www.excel.studio-kazu.jp/lib/e4b/e4b.html 概要:[マクロの自動記録]の使い方の「マクロの記録 画面が表示されます」・「できたマクロをどうやって使うのか」等解説されています。 これでマクロを作成しては如何でしょうか。

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

>関数・マクロでも構いませんのでお願いいたします 関数ではファイルを開かないと出来ない。 >マクロでも構いませんのでお願いいたします こんなの完全に,課題を丸投げ下だけでは無いか。初心者には無理な課題だ。自分の勉強したことを披露も出来ず、他人頼りではないか。 少しWEBでも探しマクって自分で勉強のこと。直ぐ他人に頼っているようだ。 Googleで「エクセル ファイルを開かず 値」ででもWEB照会するべきだ。 ーー 基本的にコンピュータデータはディスクにあっても(ディスクに保存されているが)、メモリに持ってきて置かないと読めません。 ディスクからメモリに、そのソフトで決められた約束事(エクセルなら開発したMS社が決めたもの)に従い展開した配置にならないと、何がどこに有るかも、判らない、理屈です。 下記Excel4Macroはそうでない様に見えるが、画面にエクセル画面やシート画面を出さないだけで、メモリには展開しているはず。その際エクセルそのもののプログラムの一部が実行されているはず。 それにExcel4Macroは古いバージョンの特殊プログラム(関数の形式になっているが、1まとまりのプログラムでエクセル関数の関数と性格が違う)なのでお勧めしないが、ほかに無いので時々話題になる。 ーー 下記のコードなど組めるかな。 準備として 「2日」と名づけた、エクセルブックを作った。質問のFile2と言っているブックと同じフォルダに作った。 そしてA2に「bbb」の値(文字列、何でも良いが)を入れて保存した(閉じた)。 質問のFile2と言っているブックのSheet1のA1に「2」(半角)と入れた。2日のつもり。 準備として下記を実行。 Sub test01() a = CurDir x = Range("A1") sn = a & "\" & StrConv(x, vbWide) & "日" Workbooks.Open sn MsgBox sn End Sub これで2日.xlsが開いた。これでフルパスのコードによる指定は間違いない確認が出来た。 ーーー さてExcel4Macroの部分だが、標準モジュールに Sub Test02() a = CurDir x = Range("A1") sn = a & "\" & "[" & StrConv(x, vbWide) & "日.xls]" 'MsgBox sn '--- Target = sn Target = "'" & Target & "Sheet1'!" MsgBox Target y = ExecuteExcel4Macro(Target & "R2C1") 'A2を示す番地表現 MsgBox y End Sub を入れて実行した。 http://officetanaka.net/excel/vba/tips/tips28.htmなどを参考になる。 ーー 結果 「bbb」が表示された。旨く値を取ってきたものと思う。 他ブック参照の関数式での式は http://www.excel-jiten.net/formula/ref_other_books.html の最後の方を参考にした。 == 山は3つあって、 test1のコードの完成力 他ブック参照の関数式での式 ExecuteExcel4Macroのコード(test02) ーー こんなことが、直ぐ初心者に出来るはずがない。 エクセルで多数の他ブックなどにデータを分けるとどんなに難しいか。 そういうのはむしろアクセスなどデータベースの領分だ。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

>関数・マクロでも構いませんのでお願いいたします。 どうやっても開いていないファイルのリアルタイム更新は不可能です。 マクロならコードでリンクの更新を行う事で解決できます。 INDIRECTでも編集ーリンクの設定から更新すれば良いでしょう。

関連するQ&A

  • EXCEL Sheet名変動リンク

    いつもお世話になります。教えてください。 EXCELにてFILE1.xls ⇒ Sheetが1日~31日まであります。 FILE2.xls からリンクして集計するのですが 式:サンプル ='[FILE1.xls]1日'!G7 上の式の1日の部分がSheet指定ですが、 例えば、FILE2のA1に1日と指定したら FILE1のSheetの1日にリンクさせる。 例えば、FILE2のA1に2日と指定したら FILE1のSheetの2日にリンクさせる。 FILE2のA1セルに指定した日にちによりSheet名を自動変動 させるにはどのようにすればよいのでしょうか? どなたか、ご教授下さい。

  • エクセル関数VLOOKUPの範囲の一部をセルで指定

    ファイル名2103.XLSあるとして、その2103.XLSファイルとは別のファイル名集計.XLSに、その2103.XLSファイルから関数VLOOKUPでデータの値を返したい場合、式の範囲には普通は [2103.xls]Sheet1!$A$1:$B$10 と入力されますが、この範囲の一部分をセルで指定できないでしょうか。例えば、ファイル名集計.XLSのA1セルに文字列で"2103"と入力されているとしまして、式の範囲 [2103.xls]Sheet1!$A$1:$B$10 の2103部分を[A1.xls]Sheet1!$A$1:$B$10のような式は出来ないでしょうか。

  • 《エクセル2000》シート名をセルで指定する?

    「学校」「会社」「家庭」などをシート名に持つファイルがあります。 それぞれに入っている数字を「集計」シートに集計したいのですが、例えば集計シートのA1セルに「学校」などのシート名を表示させて、その「集計シートA1セルの値に該当する名前のシートのB1~B100を合計する」というのを、関数で表現するにはどうすればいいでしょうか?(VBAではなく) よろしくお願い致します。

  • EXCELでシート名をセルの内容で指定出来るか

    検索してみましたが、探し方が悪いのか該当する質問がないようなので、質問させていただきます。 EXCELで複数のシートにあるデータを使用して集計表を作成するときの質問です。 使用する人がEXCELに慣れていない方のため、汎用性を持たせたいのですが、以下のような方法は出来るのでしょうか。 集計元シート(複数)> '1','2','3'…のように連番のシート名 集計先シート>'集計' 1.'集計'シートのセル A列 にシート名を入力します。 2.'集計'シートのセル B列 にそれぞれのシートの合計部分のセルNo(Ex.B11)を指定します こうしたとき、2.のB列 は [ B1 = '1'!B11 ]のようになりますが、この '1' の部分で '集計'シートの A1 の値を反映したいのです。 こうすると、シートが増えたとしても、上の式をコピーすれば(ドラッグでのコピー)式のシート名を変更する必要がないと思うのですが…。 ですが、思いつく方法を試してみてもどうもうまくはいきません。 本当にこういった方法は出来るのか、出来るのならその方法をご教授いただければありがたいです。 説明ベタで申し訳ありません。 これが出来るといろいろなものがうまくいくので、ぜひよろしくお願い致します。 (VBAはなるべく使わない方向でお願いします)

  • エクセル シート10枚を集計するシートの編集

    シート10枚にデータが並び、それを集計するシートを作りました。 10枚からデータを参照する方法です。 10枚シートのファイルは他にもあるので、他ファイルに集計シートをコピーしたところ、コピー元のファイル名もリンクされそのままでは表示されません。もちろんjファイル名を置換削除すればいいですが、ファイル数が多いため出来れば避けたいです。 別法として集計シートだけのファイルを作り、そこに10枚シートをコピーしてみましたが、集計シートのみにした時点で参照部分が全部#ref!に変わり、10枚シートをコピーしてももどりません。 何かいい方法はないでしょうか。

  • エクセル 複数シートの同一セルを別シートへ集計

    エクセルで複数sheetの同一セルを集計sheetへコピーしてきて一覧にし、集計するという作業を行なっています。 1~20のsheet(sheet数sheet名は変動します)を作り、一番右側に集計sheetがあります。 集計sheetのA5へsheet1のF10、A6へsheet2のF10・・・(内容は文字列) 集計sheetのB5へsheet1のG10、B6へsheet2のG10・・・(内容は数値) とコピーしていき、B30にはB5~B29の合計がSUM関数で入っています。 VBAで、集計sheetから左側のsheetの指定セルを一気に集計sheetへコピーしてくる方法はないでしょうか。 ただし集計sheetから左側のsheet21とsheet22は集計に入れたくないという式も教えて頂きたいです。 お時間のある方、ご教授下さい。 または別の質問で参考になるようなものがあればアドレスを教えて下さい。 説明が下手で申し訳ないですが、どうぞよろしくお願いします。

  • Excelセル参照でシート見出し指定

    一例として、1月から12月までのシートが作ってあり、もう1枚別の集計用シート内で =VLOOKUP(B9,'10月'!$A$1:$D$10,2,FALSE) というような式を入れれば10月のシートから指定の内容を拾ってきますが、 集計用シートのB1に「9」と入れると、上記の式で自動的にB1セルを参照して9月のシートを指定する、というようなことはできるでしょうか。 よろしくお願いいたします。

  • ハイパーリンクでシートまで指定したい

    ウィンドウズNT、エクセル2000を使用しています。 ハイパーリンクで他ファイルのシートまで指定する方法を教えて下さい。 例えば、ファイル「あいうえお」のA1にファイル「かきくけこ」のシート1をリンク、A2に「かきくけこ」のシート2をリンク、A3に「かきくけこ」のシート3をリンク・・・という意味です。 シート名だけでなくセルまで指定できる方法があればベストです。 よろしくおねがいします。

  • Excelのシート参照をするにあたって

    あるセルに他のシートを参照して集計する関数を記述しているのですが 参照先のシートが一度消去されてしまうと参照もとのセルに記述した 参照先シート名が自動的に#REFになってしまいます。 (例:「=Sheet1!A2」と記述していて「Sheet1」を削除すると「=#REF!A2」になってしまう) この現象はどうにか防げないものでしょうか? よろしくお願いします。

  • エクセル2003マクロ

    特定のフォルダに同じサンプルNoのファイルがA~Dまで4種類ずつあり、これらから必要なデータを抽出し、同一Noに対して一つの集計ファイルを作成するマクロを作りたいと思っています。 ユーザーフォームで1台ずつサンプルNoを入力すれば、抽出→集計まで処理できるコードはできたのですが、サンプルNoを指定せずにコマンドボタン1発でフォルダ内のサンプル全てを同様に処理できる方法が分かりません。色々なサイトを覘きましたが、妥当な例がなく困っています。 ファイル名はそれぞれ、 A-1.xls、B-1.xls、C-1.xls、D-1.xls、A-2.xls、B-2.xls・・・という規則でついていて、全て同じフォルダに保存されています。 どなたか良い知恵をお貸し下さい。

専門家に質問してみよう