• ベストアンサー

Excelのマクロで同じフォルダのExcelを開く、閉じる

今開いているワークブック「A」が入っているのは「1」というフォルダです ワークブック「A」でマクロを使用すると「1」フォルダから「B」というワークブックを開くようにしたいです マクロになんと組み込めば良いでしょうか? またそのワークブック「B」を閉じるマクロも教えていただきたいです。 分かる方、できればサルでも分かるようによろしくお願いいたします。 説明分かりにくかったらごめんなさい。

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

  • ベストアンサー
回答No.1

ワークシートをを開く。 Workbooks.Open Filename:="B.xls" ワークシートを閉じる。 Workbooks("B.xls").Close で良いかと思います。 あと、ファイルオープンダイアログを使用する場合の使用例も記載します。シートに適当にボタンを作って、その中に以下のコートを貼り付けて動かしてみてください。 ↓以下コード 'ファイルオープンダイアログを出してファイルのパスを取得します。エクセルのファイルしか表示されないように、".xls"でフィルターをかけます。 fod = Application.GetOpenFilename("エクセルワークブック(*.xls), *.xls", , , , False)   'ファイルオープンダイアログで、キャンセルが押されたときに、処理を中止します。   If fod = "False" Then Exit Sub   'パスからファイル名のみを抽出するために、パスの文字列の長さを求めます。 i = Len(fod)   'パスの文字列を一番後ろから調べていき、一番最初の\の位置を探します。(ファイルが"D:\temp\B.xls"とすれば、B.xlsの前の\の位置を探します。)   Do While Not Mid(fod, i, 1) = "\" If i <= 1 Then Exit Do i = i - 1 Loop   'ファイル名を抽出します。 FN = Mid(fod, i + 1, Len(fod) - i + 1)   'エクセルワークブックを開きます。 Workbooks.Open Filename:=fod   '閉じます Workbooks(FN).Close ↑以上コード

kenta-s
質問者

お礼

回答ありがとうございます!! ワークシートをを開く。 Workbooks.Open Filename:="B.xls" ワークシートを閉じる。 Workbooks("B.xls").Close ↑だとどこにB.xlsが入っているか認識されないようで開けませんでした。 後者のコードもサルな自分には難しすぎて理解できませんでした;; PC初心者並みの知識なので申し訳ありません。 理解できるように勉強してきます!! 回答ありがとうございました。

その他の回答 (1)

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

マクロの記録をとればとりあえず判るのではないですか。 まずマクロの記録を(全的・部分的に)使えないか考えるのが鉄則です。 Sub Macro1() Workbooks.Open Filename:= _ "C:\Documents and Settings\xxx\My Documents\_社員1.xls" ActiveWorkbook.Close End Sub というようなのが出てくる。 これでは、どう自分の思っている処理と違うので、どう変えたいのかを質問するとかが筋でしょう。 >サルでも分かるようによろしくお願いいたします は甘えを感じる。 本でも、WEBでもWorkbooks.Open 、ActiveWorkbook.Close で照会すれば、実例や解説が出てくる。それを使ってやってみて、わからないところを絞るクセをつけないと。

kenta-s
質問者

お礼

回答ありがとうございます!! 質問の仕方にも問題がありました。申し訳ありません。 マクロ内容を見てもどの文がどういう意味なのかも理解できないほど知識がないもので…。 WEBで調べてきます! ありがとうございました。

関連するQ&A