一通り検索したのですが、分からなかったので質問させて下さい
VBAでcsvファイルを読み込んで動作させる自動マクロ(ファイル)があります
通常ですと、csvファイルを指定のフォルダーに保存してマクロを実行させると思うのですが
このcsvファイルを先に開いたままで、自動マクロを実行させることは可能ですか?
具体的には、あるシステムからダウンロードしたcsvファイルを開いたまま
自動マクロファイルを読み込んで実行したいのです
対象:Excel2007/2010/2013
OS:WindowsXP/7
csvファイル名:c20130727123456789.csv(日付+任意の数値9桁)
自動マクロファイル:自動マクロ.xlsm
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
内容による、としか。
自動マクロファイルは
・CSVファイルを読み込んで
・保存
と思います。
CSVファイルを開いた状態で何をなさりたいの?
「ファイル名を付け替える」とか「保存場所を別にしたい」など
具体的な例を挙げていただくと対応方法が出てきやすいと思います。
お礼が遅くなりすみません
あるシステムからCSVファイルを出力させて、それをExcelで開いたままの状態でマクロを自動実行させるにはどうしたら良いかとの質問でした
通常通り、CSVファイルを保存してからマクロを実行することはできてます
(単にある複数条件でのソート結果を表示するだけです)
他のユーザでCSVファイルを保存しないで手でソートして確認しているだけという方がおり、その人のためにマクロを実行させるにはどうしたら良いか悩んでおりました
他の方もおっしゃっているように、やはり保存してから実行するやり方しかなさそうということで納得しました
No.2
- 回答日時:
良くある操作でいえば、ダウンロードしたファイルを特定の名前で保存させて
VBA側で読み込むほうが汎用性で優れていると思います。
次に、考えられるのは、開いたCSVファイルを別途エクセルのシートに張り付けて
そのシートからデータを操作する方法があります。
二つのファイルを開いた状態で、相互にデータをやり取りすることも可能ですが、
その都度、ファイル名が変わったり、エクセルの開いているファイル数や順番が変わったりすると
コードは、急に複雑になっていきます。
せいぜい、2番目の方法までに留めておいた方が無難でしょう。
お礼が遅くなりすみません
1番目の方法で現状私は使っております
他の方がExcelでCSVファイルを開いたまま、
マクロを実行するにはどうしたら良いか悩んでいました
2番目の方法は別マクロで実行したことがあります
(あるフォーマットシートに、CSVファイルを
貼りつけて加工する) 単に複数条件でソートするだけの
マクロなので、やはりCSVファイルは保存してから
マクロファイルを実行してもらうようにお願いしてみます
No.3
- 回答日時:
>あるシステムからダウンロードしたcsvファイルを開いたまま
そのCSVファイルは、一体何でどうやって開いているのですか。
CSVをふつーに開くとエクセルで開きますが、それならあとは追加で「自動マクロ.xlsm」を開いてポチッとマクロを実行するだけです。勿論「今エクセル上に開いている(CSV)ファイルを対象に作動する」よう、あなたのマクロを手直してやる必要はあります
またもうちょっと手順を簡略にするなら、自動マクロのマクロをエクセルの「個人用マクロブック」にコピーしておきます。「ダウンロードしたCSVがエクセルで開かれた」状態で、すでに個人用マクロのマクロはいつでもそのまま使えます。こちらのケースでも、同様に「開いているファイルを対象に作動する」よう、現在のマクロの手直しは必要です。
いずれのケースでも、あなたの実際のマクロの手直しは、必要に応じて別途新しいご相談として投稿して解決してください。
「ダウンロードしたCSV」を何が別の方法(たとえばメモ帳)を使って開いているなら、簡易には「ダウンロードしたCSVがエクセルで開かれる」ようにウィンドウズの設定を調整して、前述の手順に移行したほうが簡単です。具体的な設定方法は、あなたの実際の具体的な状況を添えて、別途ウィンドウズのご相談として投稿して解決してください。
この回答への補足
お返事おそくなりすみません
そのCSVファイルをExcelで開いたままで、
自動マクロ.xlsmを実行したいのです
具体的に記述方法が分からないので質問しました
一般的にはNo.1、No.2の方の回答のように、
CSVファイルを一旦保存して、そのファイルを
自動マクロで読み込んで実行してやるのが良い
ようです その方法は検索してもよくあるし、
実際自分はそうして使っております
個人用マクロブックはあまり使いたくありません
あくまでも(自動)マクロ.xlsmファイルで実行させ
CSVファイルを複数条件のソートをしたいのです
No.4
- 回答日時:
>個人用マクロブックはあまり使いたくありません
>あくまでも(自動)マクロ.xlsmファイルで実行させ…たい
それなら既に、真っ先に回答済みの通りです。
再掲:
>あとは追加で「自動マクロ.xlsm」を開いてポチッとマクロを実行するだけです
マクロ.xlsmを「開かない限り」、当然ながらマクロ.xlsmに登録したマクロを実行する事は絶対にできません。
マクロを登録したブックを「マクロを実行したいその時に既に開いておく」ために
1)個人用マクロブックを利用する
2)アドインにして登録しておく
といった段取りを利用します。
マクロ.xlsmも個人用マクロブックも「開いておきたくない」し「開くこともしたくない」で、それでもどーしてもマクロを実行したいなら、
1.マクロ.xlsmを一回開き、マクロをクイックアクセスツールバーに載せておく
2.マクロ.xlsmは閉じておく
3.CSVを開いた状態でクイックアクセスツールバーのマクロボタンをクリックする
といった手順で、実現する事もできます。
この回答への補足
2度も書き込みありがとうございます
自動マクロ.xlsmはファイルとして読み込むのはOKです
ただ、順番に
(1)対象CSVファイルを開く
(2)自動マクロ.xlsmを読み込んで、実行する
のがやりたい事です
通常私も
(a)対象マクロファイルを一旦保存する
(b)マクロファイル.xlsmを実行し、csvファイルを読み込む
(c)CSVファイルを編集する
という使い方をしています
(a)をやらずに、(1)を実行した状態で、自動マクロ.xlsmを
実行するにはどうすれば良いかが知りたいのです
開いたcsvファイルを変数F等で指定して読み込むには
dir関数等でやるにはどうしたら良いですか?
ThisworkbookかActiveworkbookでしょうか?
マクロファイルをActiveにする方法は分かります
保存ファイルを読み込む設定も分かります
Getopenfilenameでcsvを指定して読み込んでます
No.5
- 回答日時:
人の話聞いてますか??
再掲:
>CSVをふつーに開くとエクセルで開きますが、それならあとは追加で「自動マクロ.xlsm」を開いてポチッとマクロを実行するだけです。
>勿論「今エクセル上に開いている(CSV)ファイルを対象に作動する」よう、あなたのマクロを手直してやる必要はあります
2度も書き込みじゃありません。「同じ話を3度もさせられてる」んです。あなただったらどうですか?自分の説明を聞いても無い人に「その話はさっきもしたけど、またご説明繰り返しましょうかね」ってにっこり笑って延々付き合いますか。
準備:
自動マクロ.xlsmに例えば次のように作成しておく
sub macro1()
dim w as workbook
for each w in workbooks
if w.name like "*.csv" then
msgbox "FOUND " & w.name & vblf & "continue your task"
exit sub
end if
next
msgbox "NOT FOUND CSV" & vblf & "continue open CSV file"
end sub
手順:
CSVを開く
自動マクロを開く
上述のように細工したマクロを実行する
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【マクロ】webアドレスにて指定されたCSVファイル【excelソフト表示】を印刷する件 1 2023/02/15 01:52
- Excel(エクセル) エクセルでcsvファイルを開いてVBAを使いたい 7 2022/04/28 11:12
- Excel(エクセル) CSVファイルでVBAを動かす方法 3 2023/04/04 10:22
- Visual Basic(VBA) エクセルVBAについて 8 2022/07/13 22:41
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) エクセルVBA 4 2022/05/14 00:51
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Visual Basic(VBA) VBA アドインについて お詳しい方 ご教授をお願いします。 相談事項 現在以下の対応を実施した所、 1 2022/11/02 16:53
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル終了時の保存確認メッ...
-
VBAを一度起動するとずっと出て...
-
別のパソコンでエクセルのマク...
-
コピーしたファイルのマクロを...
-
アクセスでファイルを開いたと...
-
エクセルの単票を一覧表に
-
excelファイルに使われているVB...
-
excelのマクロ実行でブロックさ...
-
マクロが使えるExcelViewer
-
VBA マクロ実行時エラー’1004Ra...
-
EXCEL マクロ クリップボードク...
-
エクセルマクロにてパワーポイ...
-
エクセル2013vbaで、見えない名...
-
マクロを実行するとパス名が無...
-
秀丸で保存時のフォルダを固定...
-
マクロを消すマクロは不可能?
-
Excelが勝手にシート移動してし...
-
エクセルファイルを自身のファ...
-
「開いているすべてのブック」...
-
Powerpoint 2003 でのVBA UserF...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル終了時の保存確認メッ...
-
VBA マクロ実行時エラー’1004Ra...
-
VBAを一度起動するとずっと出て...
-
別のパソコンでエクセルのマク...
-
コピーしたファイルのマクロを...
-
マクロを消すマクロは不可能?
-
昨日まで動いていたエクセルの...
-
エクセルファイルを自身のファ...
-
エクセル2013vbaで、見えない名...
-
Excelマクロ ファイル名が変わ...
-
エクセルマクロ実行中に別ファ...
-
excelファイルに使われているVB...
-
Excelが勝手にシート移動してし...
-
Word用のマクロが急に働かなく...
-
EXCEL マクロ クリップボードク...
-
【マクロ】エラーが発生⇒実行時...
-
excelが別プロセスで起動してし...
-
エクセルマクロを有効にしない...
-
アクセスでファイルを開いたと...
-
excelでpersonal.xlsを常に開く...
おすすめ情報