エクセルのファイル名に変数を指定して開く方法

このQ&Aのポイント
  • エクセルのVBA初心者の方が特定のセルに記載された文字をファイル名としてエクセルファイルを開く方法についてアドバイスを求めています。
  • 質問者はエクセルのVBAを始めたばかりで、特定のセルに記載された文字をファイル名としてエクセルファイルを開きたいという課題に取り組んでいますが、構文を組んでもエラーメッセージが表示されてしまうとのことです。
  • 具体的な構文や問題点を記載しており、VBAのファイルの保存場所やフォルダの構成に関して説明があります。アドバイスを求めています。
回答を見る
  • ベストアンサー

エクセルのファイル名に変数を指定して開く方法

エクセルのVBA初心者です。 最近、といっても2~3日前に始めたのですが、簡単なところで つまづいてしまい、本を読んでもにっちもさっちもいかず、困っております。 下記にやりたいことと、構文を記載しますので、お手数ですがアドバイスを 頂ければ助かります。 <やりたいこと> 特定のセルに記載された文字をファイル名としたエクセルファイルを VBAで開きたい。 <構文> Sub W() Dim ファイル名 As Integer ファイル名 = Range("C5").Value Workbooks.Open "D:\日本\データ\ファイル名.xlsx" End Sub <問題点> 上記のように構文を組んでも、「実行時エラー '1004'」なるメッセージが出て 「***が見つかりません。ファイル名およびファイルの保存場所が正しいか...」とのメッセージが出てしまいます。 C5のセルにはファイル名が記載され、このファイル名を変数としたつもりです。 VBAが入っているファイルは、「日本」というフォルダに入っており、変数によるファイルは「日本」というフォルダの子供である「データ」というフォルダに入っています。 アドバイスよろしくお願いします。

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

  • ベストアンサー
  • uruz
  • ベストアンサー率49% (417/840)
回答No.2

No.1さんに加えて Workbooks.Open "D:\日本\データ\ファイル名.xlsx" ↓↓↓↓ Workbooks.Open "D:\日本\データ\" & ファイル名 & ".xlsx"

その他の回答 (1)

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.1

Dim ファイル名 As Integer ↓ Dim ファイル名 As String Integerじゃ整数で数値です。ファイル名にはなりません。 Stringで文字列です。 とりあえずこれ。

katamogura
質問者

お礼

早速の回答、ありがとうございました!

関連するQ&A

  • EXCELでFile名を対象セルに入力する方法

    VBA勉強中です。 エクセルの対象セルに、対象ファイル名を入力するVBAを作りたいのですが、 うまくできません。。。 やりたいことは↓↓↓ ---------------------- 【1】ファイル名を対象セルに入力する 1.「ファイル名取得」ボタンをクリック 2.「ファイルを選択してください」ウィンドウ表示 ※.ここで、ファイル種類を制限  1) 画像ファイルのみ選択の場合  2) 全てのファイルを選択可能にする場合 3.ファイルを選択、「OK」をクリック 4.対象セルに、ファイル名が入力される(拡張子付) ---------------------- また、 以下もできると最高に嬉しいです!! ---------------------- 【2】選択したファイルのコピーが指定フォルダに保存される 1.デスクトップに「data」というフォルダが作成される 2.選択したファイルのコピーが「data」フォルダに保存される ---------------------- どなたか教えて頂ければ嬉しいです。 よろしくお願いいたします。

  • エクセルマクロで任意のファイル名をつけて保存したい

     エクセルVBAについての質問です。  エクセルのマクロで、Aというファイルを開いて、そのうち必要なワークシートだけを抽出し、新しいブックに移動し、その新しいブックを新しいブックのsheet1のセルC2の文字列をファイル名として保存するようなマクロをくみたいと思っています。  ファイルを開いて必要なワークシートだけを抽出し、新しいブックに移動するところまではできましたが、新しいブックのセルC2の文字列をファイル名として保存することができません。FNを変数として宣言して、C2の文字列を代入し、FNをファイル名として保存しようとすると、ファイルにFNという名前が付いてしまいます。どうすれば、C2の文字列をファイル名として保存できるのでしょうか。なお、保存するフォルダはc:\変換ファイル\6月です。どなたか教えてください。よろしくお願いします。

  • エクセルファイルのファイル名で検索

    あるフォルダからエクセルファイルに記載されているファイル複数を検索で表示させたいと思っています。(表示させたあとにファイルを開き編集します。)エクセルファイルのA列に1セルに1つファイル名が記載されています。 ファイル名は複数あります。 A1セル "aaa.doc" A2セル "bbb.doc" A3セル "ccc.doc" 何か良い方法はないでしょうか。 よろしくお願いします。

  • ファイル名に変数を割り当てたい

    EXCEL VBAで ファイル名に変数を割り当てて保存したいのですが、 うまく行きません。どこがおかしいのか教えてください。 C\サンプル\見込200704 を変数で割り当てて保存したい。 バージョン301 = "200704" 四月 = "C:\サンプル\見込" & "バージョン301" Range("A1").Select ActiveWorkbook.SaveAs Filename:=四月, _ FileFormat:=xlCSV, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False ActiveWorkbook.Close False

  • ExcelVBAでファイルを開くフォルダ指定方法

    ExcelのVBAを用いて実験データのcsvファイルをまとめるプログラムを書いています. 肝心のプログラムはほぼできています. しかし OpenfileName = Application.GetOpenFilename("CSVファイル,*.csv?") としたときに開かれるフォルダ(ファイルを指定するフォルダ)がカレントフォルダ?となっております. 実行するExcel(VBA入り)と実験データが下記のパスにあったとして C:\Users\ABC\Documents\Data\110302\ カレントフォルダはなぜかマイドキュメントがデフォルトになってしまいます. C:\Users\ABC\Documents\ 階層移動できるので問題なくもないのですが,一々階層移動するのも面倒なので修正したいと考えております. そこで (1)プログラム実行直前にカレントフォルダを実行するExcel(VBA入り)の位置に変更する方法 (2)カレントフォルダと関係なく実行するExcel(VBA入り)があるフォルダを開く方法 どちらかで対処できると考えたのですがその方法が見つかりません. (ちなみに実行するExcel(VBA入り)の位置は動かすものとするので絶対パスでの指定はなしとします) どなたかご教授お願いします.

  • ファイル名やシート名、パス等の変更を参照する方法

    エクセルで他のファイルや他のシートのセルを参照している場合に、環境の変化で他のファイル名やパスが変更されたり、シート名が変更されると「ファイルが見つかりません。」というメッセージが表示され、影響が出たセルの数だけ利用者が元のファイルやシートを探す羽目になり、操作上の面倒を強いられております。 この場合、この様な手間を掛けないで済むよう予め変数を設定するセルを用意しておくように修正したいと思います。 環境に変更が生じた場合は、この変数を設定したセルだけを変更すれば個々のセルに影響が出ないようにすることが望ましいと考えますが、実際にどのようにすれば実現できるのかエクセルの関数等を調べても判りません。 具体的にファイル名やシート名、パス等の環境を設定するセルと、それを参照するセルの関係を下記の例で、 (1)参照するセルXの設定内容 (2)ファイル名やシート名、パスを自動的に設定したり、参照する方法 以上のご教示を、よろしくお願いいたします。 例 セルA:ファイル名を変更設定するセルで、内容:Table01 セルB:シート名を変更設定するセルで、内容:Sheet01 セルC:パスを変更設定するセルで、内容:D:\Data\Table セルX:参照するセルで、変更前の内容:C:\Data\Table\[TableA.xls]SheetA'!C5

  • EXCELの変数について

    セルに入力されているデータ名と同じ名前のフォルダがあった場合は、 フォルダ内の写真データをセルに合わせて貼り付ける方法を教えてください。 フォルダには複数枚(最大6枚)の写真データが入っていますが、ファイル名(jpg)がバラバラです。 《ファイルA》 A1=11、A2=13、A3=17・・・・ 《ファイルB》 A1にファイルAで指定された番号 CドライブのファイルAのA列と同じ番号のフォルダに複数枚写真(最大6枚)あります。 下記セルに順番に自動で貼り付ける。 (1)J28(2)M28(3)P28(4)J37(5)M37(6)P37 宜しくお願いします。

  • エクセル マクロ ファイル名を変数指定したいのですが?

    マクロ超初心者です。 何方かご存知の方教えてください。 起動しているエクセルのファイルを変数で定義して参照したいのですがうまくいきません。下記は何処が悪いのでしょうか? 因みにB N Namaeは変数指定してます。 Worksheeetsは参照します。最後はセルコピーの構文です。 マクロ構文 Workbooks("月報 & B.xls").Activate Worksheets(N & "月").Select Cells.Find(What:=Namae, LookIn:=xlValues, LookAt:=xlWhole).Offset(1, 0).Resize(RowSize:=405, ColumnSize:=4).Select Selection.Copy

  • 結合した文字列をファイル名に使えない

    Excel上に入力されているパス名とファイル名のデータを組み合わせて、 様々なファイルを開いたりコピーしたりするVBAのコードを作ろうとしています。 仮にシート上のA1セルに、C:\Documents and Settings\デスクトップ というパス名 A2セルに URIAGE.xls というファイル名が入力されていたとして、 A1の文字列データとB1の文字列データを結合する場合、 Sub FileSousa()  Dim a As String  Dim b As String  Dim c As String  a = Cells(1, "A").Value  b = Cells(2, "A").Value  c = Chr(34) & a & "\" & b & Chr(34)  Range("A3") = c としてみると、確かにA3セルには、"C:\Documents and Settings\デスクトップ\URIAGE.xls" と出力され、文字列が結合されたことがわかるのですが、その変数cのデータを使って  Workbooks.Open Filename:=c として、そのファイルを開こうとすると、ファイル名が見つからないとしてエラーになります。 ファイルはデスクトップ上の確かにその名前で存在しており、直接 Workbooks.Open Filename:="C:\Documents and Settings\デスクトップ\URIAGE.xls" とすると開きます。 " を Chr(34)によって入力したのがいけないのでしょうか、 Workbooks.Open Filename:=××× には、変数を置いてはいけないのでしょうか。 そもそも文字列の結合は、"あ" & "い" → "あい" となるのが基本だと思うのですが、 a="あ"、b="い"、c=a&b → c="あい"として結合した変数cについては、ファイル操作上のファイル名の設定項目として使えないのでしょうか。

  • エクセルファイル名の変更について

    フォルダ内のエクセルファイル名を変更したいのですが無数にある為、一括処理したいのですが...変更規則は以下の通りです フォルダA:エクセルファイル1~100があります エクセルファイル1を開くと下記のようなデータがあります  A           B           C           D 1ファイルNo:1  社名 ○×商事  担当 鈴○ 様  処理日付xxxx/xx/xx 2           社コード:○○○ セルB1にある○×商事とB2の社コードの○○○を取り出してファイル名を下記のように全てしたいのですがご教授願えますでしょうか? ファイル1.xls → ○×商事 ○○○.xls この作業をフォルダ内にある全てのエクセルファイルに実行したいのです。説明が下手で申し訳ありませんがヨロシクお願いします。

専門家に質問してみよう