• ベストアンサー

エクセルマクロについて

エクセルマクロについて マクロ処理において、毎回読み込むファイルが違うので、 マクロ利用時にはマクロ内の絶対パスを手動にて変更しています。 しかし、これはなにげに大変な作業です。 そこで、別のなんらかの手法を取りたいと考えています。 たとえば、"開く"ボタンにて対象ファイルをマウスにて選択することによって、 絶対パスが変更する。等 どのような手法でもかまいません。 ご教授のほどよろしくお願いします。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 私には、コードが何を求めているのか、ご説明では正確には分かりません。 >"開く"ボタンにて対象ファイルをマウスにて選択することによって、絶対パスが変更する。等  fn = Application.FileDialog(msoFileDialogOpen).Show  ' or  'fn = Application.Dialogs(xlDialogOpen).Show をお使いになっているのかな? >どのような手法でもかまいません。 '---------------------------------- Sub getFolderName1()  Dim myPath As String  With Application.FileDialog(msoFileDialogFolderPicker)   If .Show = False Then Exit Sub   myPath = .InitialFileName   MsgBox myPath  End With End Sub '---------------------------------- Sub getFolderName2() Dim fn As String  ChDir ThisWorkbook.Path '最初のフォルダに移動  fn = Application.GetOpenFilename("すべてのファイル(*.*),*.*")  If fn = "False" Then Exit Sub  myPath = Mid$(fn, 1, InStrRev(fn, "\"))  MsgBox myPath End Sub '------------------------------------ 他には、こんな方法もあります。 Sub Sample_ShowFolder()  Dim objSh As Object  Set objSh = CreateObject("Shell.Application"). _   BrowseForFolder(0, "フォルダを選んでください", 0, "c:\")   If Not objSh Is Nothing Then    MsgBox objSh.Items.Item.Path   End If  Set objSh = Nothing End Sub フォルダを取得する方法は、他にも、Win32 APIがあります。

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

その他の回答 (2)

noname#22364
noname#22364
回答No.3

こんにちは。 回答ではないのですが、 下記URLのサイトが参考になると思います。

参考URL:
http://www.asahi-net.or.jp/~ef2o-inue/top01.html
全文を見る
すると、全ての回答が全文表示されます。
  • S-Fuji
  • ベストアンサー率36% (592/1624)
回答No.1

ファイルを開く時 Application.Dialogs(xlDialogOpen).Show を使うと、ファイルの選択画面に成ります。 その他 Application.FindFileとか色々試してみて下さい。

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

関連するQ&A

  • Excelマクロについて

    Excelマクロ(VBA)で複数のExcelファイルを一括で処理するプログラムを作っているのですが、処理対象のExcelファイルにはマクロが記述されていて、Excelを開く毎に記述のマクロが動いてしまいます。 対象のExcelファイルをオープンする時に、マクロを無効にして開くすることは可能でしょうか? 今現在、Excelファイル開く時に使ってる命令は、 Workbooks.Open Filenameです。

  • エクセルマクロについて

    いつもお世話になっております。 エクセルのマクロについて質問させていただきます。 仕事上測定した10回データを、エクセルで計算させ平均やσ出すという処理を毎回しているのですが、測定したデータというのが、csvファイルで10個できあがり、それを一つずつ開いては貼っての繰り返しをしています。 この作業をマクロで自動的に出来ないものかと思い質問させていただきました。 装置によって毎回.csvの前のファイル名が変る恐れがあるので、csvファイルの入っているフォルダ(ディレクトリを指定)を指定し、その中にあるcsvファイルを自動的に貼る事が出来る事が理想です。 VBAではこのような処理のサンプルプログラムがあるのですが、VBAはあまり解らないので出来ればマクロの記録からできればと思います。 宜しくお願い致します。

  • エクセル:マクロ処理

    エクセルファイルにマクロを入れておき、あるボタンを押したらそのマクロが1回だけ実行される。 というようにしたい。 (質問)   ボタンは、どう作るか。コマンドで作るのか。   ボタン処理のところのマクロ記述はどんな感じのコードか。   このファイルを開いたときマクロを有効とするかは有効にするでいいんですよね。 (参考) ワークシート   ボタン1を表示しておく   マクロ   ボタン処理   実行処理 マクロend

  • エクセルマクロでファイルを開いて保存したいです。

    エクセルマクロでファイルを開いて保存したいです。 エクセルファイルでファイル名「編集」という物を開きます。 このSheet1には中央にコマンドボタンが作成して有ります。 このボタンをクリックして以下の作業をマクロで行いたいです。 1.エクセル標準の「ファイルを開く」のメッセージボックスが開く 2.ここは使用者が作業をしてもらう   マイドキュメントだったり、マイネットワークだったり、   (ファイルの種類はCSVにする)   処理をしたいCSVファイルを探してもらい選択後、開くをクリック   例えば20100922.CSVを選択し開くをクリック 3.クリックと同時にそのファイルが展開されて、「編集」のエクセルファイルの   Sheetにシート名「集計」が作成されそのシートにCSVファイルの全内容がセルA1から貼り付く。   さらに登録してあるマクロモジュールで編集処理がされ   マクロを引き継がず、シート「集計」だけを   ファイル名は固定でそのファイル名の後ろに作成日(システム日付)を入れて   参照したCSVファイルの保管場所に保存する。   ファイル名例:売上20100923.xls(売上は固定) 4.エクセル「編集」のファイルからシート「集計」を削除する。 5.メッセージBOXで「編集終了」と表示 次回エクセルファイル「編集」を開くと、コマンドボタンだけである。 また作成された「売上20100923」はマクロがないから開くときに マクロのメッセージは出ない。というようにしたいです。 NO.2のファイルを選択する作業は作業者にしてもらいますが シート1のコマンドボタン1回を押すだけでNO.1~NO.5まで完結させたいです。  NO.3のマクロ処理はマクロの記録でモジュールができています。 このマクロの作成方法と、そのマクロが出来たら その文のどこに作成済みの処理文を入れればいいのかわかりません。 よろしくお願いします。 ここでつまづいています。この後この選択したファイルの全内容が シートの集計に展開されません。 Private Sub CommandButton1_Click() Call 集計 End Sub Sub 集計() FullPath = Application.GetOpenFilename("CSV,*.CSV") If FullPath <> "False" Then Sheets("Sheet1").Select Sheets.Add ActiveSheet.Name = "集計" With ActiveSheet.QueryTables.Add(Connection:="CSV;" & FullPath, Destination:=Range("A1"))   マクロの記録で作成したマクロ   シート"集計"をマクロを引きつかずファイル名売上&システム日付で保存   シート"集計"を削除する

  • エクセルマクロ

    やりたいことは、毎回更新されて開くエクセルCSVの画面で、自分仕様にマクロの記録を行い、(枠固定や、セルの幅変更、色を付けておいたり)、そして再度 更新されたエクセルCSV画面がを開かれたときに、前回記録したマクロ設定された状態で開きたい。 現在は、CSVファイルが開かれると、自分の見やすいように操作して見ているのですが、これをいったん閉じて(毎回更新される内容なので保存しないで閉じています) またCSVファイルを開くとき繰り返し自分の見やすいように操作してから見ていますが、この見やすいようにする操作を毎回行わず設定するやり方を教えてください。 パソコンは詳しくないです、プログラムみたいな画面はさっぱりわかりません。 ちなみに、毎回更新されて開くCSVエクセルファイルは、フィルター選択で自分の見たい部分を選択して見ています。 職場で使用しているのでなるべくはやく解決したいです。

  • エクセルマクロで質問ですが、どなたか教えてください。

    エクセルマクロで質問ですが、どなたか教えてください。 処理の為のファイルとエクセルのマクロしか入っていないファイルの2種類を作って作業しています。 ですが、処理ファイルから、マクロファイルを読み込みマクロ実行させているのが、通常なのです。 しかし、時々マクロファイルが表(アクティブ)になってしまい、肝心の処理ファイルがアクティブになってなく、処理が出来ないときがあります。処理ファイルは名称がいろいろ変わる為、(見積A物件、B物件など)ファイル指定も出来ないのです。 マクロファイルを読み込み、実行させる際、マクロファイルを表に出さないで処理する方法があれば教えてください。

  • エクセルでのマクロ作成

    エクセルで作成したボタンをクリックすると以下の事を行うマクロを作りたいと思っています。 (1)最初に貼り付けたいセルの範囲をドラッグで選択する。(手動) (2)マクロを登録したボタンを押す。 (3)マクロ内で指定したセル(たとえば $A$1)をコピーして、(2)でボタンを押してマクロを実行する前に(1)で選択したセルの範囲に貼り付ける。 VBAが分からないので難儀しています。 宜しくお願いします。

  • Excel:マクロを消す方法教えてください。

    Excelで作業している時に、間違えてマクロを起動させて しまいました。 どのボタンを押してそうなったのかもぅ覚えていません…。 一旦この状態になってしまうと、そのファイルが次のファイルを開く時から 「このファイルはマクロを含んでいます…」というなウィンドウが表示され 毎回マクロを実行・無効の選択をしなくてはなりません。 自分で使う分には問題なかったのですが、 このままでは恥ずかしくて他の人にファイルを送れません。 もちろんワークシートのコピーなどで新しく作り直せばいいのでしょうが、 毎回それではあまりに手間です。 マクロは全くの初心者です。 どうしたら間違えて登録?してしまったマクロを削除できますか? ちなみに、「ツール」⇒「マクロ」⇒「▲マクロ」には 何も表示されていません。 Excelに詳しいかた、宜しくお願いいたします。。。

  • EXCELのマクロで困ってます。

    EXCELのマクロで困ってます。 今EXCELでデータを処理しているのですが、 データが膨大にあり、処理するのにすごく時間がかかっています。 そこでマクロで何とかできないかと思っています。 EXCELに詳しい方のマクロ作成方法について教えてください。 質問内容は 画像の まずはB列の:の後ろにC列、D列、E列の文字を挿入し、それを次の列、次の列と進めていきたいのですが 可能でしょうか? それに開始ボタンと終了ボタンを作って 3人で作業したいと思っています。(後の二人はあまりマクロを知らないので簡単に動作させたい) コピペでは間に合わなく、ホントに困ってます。 よろしくお願いいたします。

  • ローカル⇒ネットワーク移動でマクロが動かなくなった

    いまエクセルのマクロを組んでいます。 ローカル(マイドキュメント)に保存して作業していたファイルを、完成後に会社の共有ネットワークフォルダに移したところ、マクロがうまく作動しなくなりました。 「(参照先の)ファイルが見つかりません。ファイル名およびファイルの保存場所が正しいかどうかを確認してください」 というエラーが出ます。 ボタンを押したら画像が出てくるマクロを組んでいて、ファイルの定義を以下のようにしてあるのですが、どのように修正すればよいのでしょうか? ChDir ThisWorkbook.Path Workbooks.Open filename:="aaa.xls" 絶対パスを相対パスにすればよい、というような記述を本で見たのですが、具体的に記述をどう変更すればよいのかわかりません。 初歩的な質問かもしれませんが、初心者なものでどうぞよろしくお願いします。

このQ&Aのポイント
  • RC-505MK2の出力インピーダンスとFISHMAN LOUDBOX MINIの入力インピーダンスについて質問です。
  • RC-505MK2の出力インピーダンスは1kΩで、FISHMAN LOUDBOX MINIの入力インピーダンスは10kΩです。
  • LoudboxのAux Inに接続した際、RC-505MK2の出力ボリュームを設定しているにも関わらず、Loudboxが爆音になる場合、パッシブDIを使用することで問題が解決する可能性があります。また、Radial Pro D2は適切な選択肢の1つです。
回答を見る

専門家に質問してみよう