• 締切済み

シート挿入について

ExcelFile A とExcelFile Bがあります。 まずAを開きB挿入ボタンでBを別シートで読み込みを行なっていますが B(固定)ではなくBを含む文字列にしたいのですが どのようにすればいいのでしょうか? 現在の設定は Workbooks.Open Filename:=Workbooks("A.xls").Path & "\B.xls" となっています。

みんなの回答

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.3

>Workbooks.Open Filename:=Workbooks("A.xls").Path & "\B.xls" Workbooks.Open Filename:=Workbooks("A.xls").Path & "\" & workbooks("A.xls").worksheets("sheet1").range("a1").value & "B.xls" このように変更すれば、Aファイルのシート1のセルA1に入力すれば 入力した文字がB.Xlsの前に付きます worksheets("sheet1").range("a1").value の部分のシート名、セル番地を変更すれば お好きな場所で開くファイル名(B.Xlsの前まで)を変更可能

nghm
質問者

お礼

ありがとうございます。 B.xlsはあらかじめ1234-567-B.xlsといった具合に名前が付けられていますので上記内容ではできません。

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

ファイル名をプログラム側で指定できるなら、"\B.xls"のところを変数にしておいて、変数の内容を変えてあげればよいでしょう。 事前にファイル名がわからない場合は、No.1の回答のようにDir()関数でワイルドカード利用の指定をして、Bを含むファイルを取得する方法になるでしょう。

nghm
質問者

補足

有難うございます。 事前にファイル名が分からないのでワイルドカード?の利用となりそうですが、具体的にどうすればいいのでしょうか? 初心者で申し訳ありません。 もう少し分かりやすければ助かります。

全文を見る
すると、全ての回答が全文表示されます。
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

>B(固定)ではなくBを含む文字列にしたいのですが ファイル名は正しく指定しないと開く事はできません。 Dir()関数とループ文を使って、任意の名前を含むファイルを順々に開いて処理する必用があります。

nghm
質問者

補足

ありがとうございます。 ではBを含む文字列と書きましたが、実は1234-567-B.xls というファイルで1234-567は変わる場合があります。(7654-321-B.xlsなど) こういった場合の設定方法はどうなるのでしょうか?

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

関連するQ&A

  • EXCELファイル挿入について

    Excel2000を使用してます。 前回質問したのですが問題が生じたので再度質問します。 ExcelFile A とExcelFile Bがあります。 まずAを開きBを別シートで読み込みを行ないたいのですが どのようにすればいいのでしょうか? ExcelFile A はシート1とシート2の二つのシートに分かれています。 ExcelFile Bはシートが一つでこのシートを丸ごとExcelFile Aのシート3として挿入を行いたいだけです。 以前に質問した際にはExcelFile B(固定名)でしたが、 それは無事解決できました。 問題はExcelFile Bは常に固定名ではないということです。 ただBという文字列ははいっています。 (1234-567-B.xlsといった具合で7654-321-B.xlsとなる場合もあります) イメージしているのはExcelFile Aの一枚目のシートに ExcelFile B挿入ボタンを設置してこのボタンを押すだけでExcelFile Bがシート三枚目に入ってくるといった感じです。 マクロ設定でBの文字列検索を行い当てはまった場合挿入します。 なかった場合はメッセージを出します。 ExcelFile AとExcelFile Bは同じ場所にあります。 こんな感じなのですができるでしょうか? 具体的にマクロを作成してもらえたら大変うれしいです。

  • vbaで挿入

    os xp   ex  08 Dim pa As String   pa = "C:\08-C\9\1K-1\" Workbooks.Open Filename:=pa & "1234.xls", UpdateLinks:=0 '<----- B列に組み立て Workbooks.Open Filename:=pa & "?????.xls", UpdateLinks:=0 上記の????の箇所に A列の4桁~6桁の数字のみ または 数字、文字、記号の混在 挿入出来ませんか? 例えばA2から始まりAのセルが空白になったら停止 とゆうことなのですが お願いします。

  • エクセルのシート読み込み

    Excel2000を使用してます。 前回質問したのですが解決できなかったので再度質問します。 ExcelFile A とExcelFile Bがあります。 まずAを開きBを別シートで読み込みを行ないたいのですが どのようにすればいいのでしょうか? ExcelFile A はタブ1とタブ2の二つのシートに分かれています。 ExcelFile Bはタブが一つでこのタブを丸ごとExcelFile Aのタブ3 として挿入を行いたいだけです。 イメージしているのはExcelFile Aの一枚目のシートに ExcelFile B挿入ボタンを設置してこのボタンを押すだけでExcelFile Bがシート三枚目に入ってくるといった感じです。

  • 別ExcelFileの挿入について

    ExcelFile A とExcelFile Bがあります。 まずAを開きBを別シートで読み込みを行ないたいのですが どのようにすればいいのでしょうか? できれば読み込みボタン一つで読み込めればいいと思っています。 (読み込みファイル名(B)は固定の名前にしておく)

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

    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については、ファイル操作上のファイル名の設定項目として使えないのでしょうか。

  • 同じフォルダ内のブックを開きコピーする方法

    いろいろチャレンジしてみたのですが どうにも行き詰っております。 ご教示頂ければ幸いです。 1つのフォルダに3つ(数は固定)のシートがあります。 フォルダ名は毎回変わります。 C:\デスクトップ\作成 ├4328457 神戸 ├作成元データ(名前は固定)←Aとします。  ├1314 電源工事(名前は毎回変わります)←Bとします。 └見積.xls(名前は固定)←今回は使いません 毎回名前の変わるBを先に開き、下記の「FileOpen」マクロで Aを開きます。 Bにあるシート(数は変動)を全て、Aにあるシート(3枚固定)の前に コピーし、Bは閉じてしまい、Aにて作業をしたいと思います。 Sub FileOpen()   Dim Wb As Workbook   Dim Fname As String     Dim PathName As String    Set Wb = ActiveWorkbook   Fname = "作成元データ.xls" PathName = Wb.Path   If Right(PathName,1)="\" then   Workbooks.Open Filename:=PathName & Fname   Else     Workbooks.Open Filename:=PathName & "\" & Fname     ThisWorkbook.Active    End If End Sub 「ThisWorkbook.Active」にてBに戻しているつもりなのですが Aがアクティブのままであり、Bのシートをコピー選択できなくなってしまっています。 Sub BookOpen() Workbooks.Open Filename:=ThisWorkbook.Path & "\作成元データ.xls" End Sub こちらのように簡単な構図も試してみたのですが PESONAL.xlsbのあるフォルダ?を見に行くようでうまく「作成元データ」を開けませんでした。 お詳しい方には基本的な事かもしれませんが どうぞ宜しくお願い致します。   

  • Excelファイル内の検索マクロがエラーになってしまいますので、その解

    Excelファイル内の検索マクロがエラーになってしまいますので、その解決方法を教えて戴きたいと思います。 (ExcelのVer.はPCによって異なり2002と2003です) 現在3つのExcelシートがありまして、内訳は ・検索.xls : 検索文字列入力用、マクロ実行用 ・文字列が含まれない.xls : データベース(検索文字列が含まれない) ・文字列が含まれる.xls : データベース(検索文字列が含まれる) となっております。 (デバッグの為にデータベースは意図的に作成しております) ここで『検索.xls』のマクロで以下のように作成をしてみました。 Sub 検索() Dim SearchWord As String Workbooks("検索.xls").Activate SearchWord = Worksheets("Sheet1").Cells(1, 1) ' 検索.xlsのSheet1のA1に検索文字入力 Workbooks.Open Filename:="D:\文字列が含まれない.xls" Windows("文字列が含まれない.xls").Activate Cells.Find(What:=SearchWord).Activate Workbooks.Open Filename:="D:\文字列が含まれる.xls" Windows("文字列が含まれる.xls").Activate Cells.Find(What:=SearchWord).Activate End Sub しかし、このマクロを実行しますと『文字列が含まれない.xls』の処理でエラーになってしまいます。 この『文字列が含まれない.xls』の処理をコメントアウトしますと『文字列が含まれる.xls』の処理はちゃんと実行してくれますので、データベースに検索文字が無かった場合の処理のさせかたが問題だとは思うのですけど、ネット検索をしても、上手なキーワードが思い浮かばずに欲しい情報がヒットしてくれません。 なにか単純な問題だと思うのですけれども、Excelにお詳しいかたがいらっしゃいましたら、回避策を教えて戴きたいと思います。

  • エクセルVBAでパスの¥マークについて

    このマクロを記述したBOOKと同じフォルダー内にある、シート001.xls を開くマクロです。 同一フォルダーにあるのですから、このような記述になると思います。 Sub kakunin1() Workbooks.Open (ThisWorkbook.Path & "\" & "シート001.xls") End Sub しかし、以下の3つはすべてシート001.xls を開くことができました。 Sub kakunin2() Workbooks.Open (ThisWorkbook.Path & "\" & "\" & "シート001.xls") End Sub Sub kakunin3() Workbooks.Open (ThisWorkbook.Path & "\" & "\" & "\" & "シート001.xls") End Sub Sub kakunin4() Workbooks.Open (ThisWorkbook.Path & "\" & "\" & "\" & "\" & "\" & "\" & "シート001.xls") End Sub パスの¥マークは階層をあらわすのだと思っていましたがいくつ重ねてもなぜ開くのでしょうか?非常に初歩的な質問だと思いますが、ご教示いただければ幸いです。

  • Excel VBAで異なるファイル間のコピー

    異なるファイル間で値のみをコピーしたいです。下記の様な感じです。 hoge1.xlsのA1からA10のセルの値のみをhoge2.xlsのB1からB10へコピーする。 以下の様に書いてみたのですが、数式がコピーされてしまいます。 VBAをやったことがなく、今ネットで30分ほど見て書いてみたので 根本的に理解していません。簡単な書き方を教えていただきたいです。 Sub test() Dim Fname As String Fname = "hoge1.xls" Workbooks.Open Filename:=Fname, ReadOnly:=True Dim range1 As Range Set range1 = Worksheets("Sheet1").Range("A1:A10") range1.Copy Destination:=Workbooks("hoge2.xls").Worksheets("Sheet1").Range("B1:B10") End Sub また、ファイルを開いたり閉じたりは必要なのでしょうか? Workbooks.Open Filename:=Fname, ReadOnly:=True を書かずに、いきなり Set range1 = Workbooks("hoge1.xls").Worksheets("Sheet1").Range("A1:A10") はダメなのでしょうか?? よろしくお願いします。

  • ブックの保護(シート構成) でシートのコピー

    エクセルで外部データを参照させるために, 別のブックを開きシートをコピーし元のブックに貼り付け別のブックは閉じるというマクロを作成しました。 Workbooks.Open Filename:=a Sheets("データ").Select Sheets("データ").Copy After:=Workbooks("ファイル.xls").Sheets("メニュー") Workbooks(a).Close SaveChanges:=False a(変数)というファイルを開く シートのデータを選択 データをコピーし ファイル.xls のメニューシートの後に貼り付け a(変数)のエクセルファイルを保存せずに閉じる 動作としては正常に動きました。 しかし、この ファイル.xls には ID とパスワードで管理しています。 その管理したシートがあるんですが、それを表示させないために シートを非表示→ブックの保護→シート構成 を行いました。 マクロを動かすと、シート構成をしているので Sheets("データ").Copy After:=Workbooks("ファイル.xls").Sheets("メニュー")  が動かないことに気が付きました。 何かいい方法があればご教授お願いします。

専門家に質問してみよう