Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


3653 / 13646 ツリー ←次へ | 前へ→

【60922】CSVファイルを開くマクロ SR71 09/3/25(水) 9:37 質問[未読]
【60923】Re:CSVファイルを開くマクロ 超初心者 09/3/25(水) 10:32 発言[未読]
【60926】Re:CSVファイルを開くマクロ SR71 09/3/25(水) 10:53 お礼[未読]
【60930】Re:CSVファイルを開くマクロ neptune 09/3/25(水) 11:45 発言[未読]
【60928】Re:CSVファイルを開くマクロ つん 09/3/25(水) 11:30 発言[未読]
【60929】Re:CSVファイルを開くマクロ SR71 09/3/25(水) 11:34 お礼[未読]
【60933】Re:CSVファイルを開くマクロ つん 09/3/25(水) 15:20 発言[未読]

【60922】CSVファイルを開くマクロ
質問  SR71  - 09/3/25(水) 9:37 -

引用なし
パスワード
   「専用のマクロファイル」を開く

自動実行で「ファイルを開くダイアログ」を表示

csvファイルを選択して実行

csvファイルを開く、もとのマクロファイルを閉じる

この一連の作業をする「専用のマクロファイル」をつくりたいのですが、
他で参考にさせてもらった下記コードでは、選択クリックしても無反応でうまくいきません。
なにとぞご指導願います。

Sub auto_open() 'ファイルを開くダイアログ

  Dim aFile As Variant
 
  aFile = Application.GetOpenFilename _
    ("Excelファイル (*.csv), *.csv", , , , True) 

End Sub

【60923】Re:CSVファイルを開くマクロ
発言  超初心者  - 09/3/25(水) 10:32 -

引用なし
パスワード
   ▼SR71 さん:
まずは教えていただいたコードを自分なりに理解することです。
ヘルプを参照したり、Google検索したり、、、、、

「作って!」とまる投げして作ってもらったコードは
今回のように再度質問を投げないと分からない、
ということになりかねません。


単純にファイルを開くだけなら
ファイルーー開く
という機能が装備されているので
そちらの利用の方がずっと簡単で安定して動きます。

それを使わないのは、別の目的があるかと思います。
それらを実現する為にも、少しでも勉強した方が良いかと思います。
(「検索癖」も)

【60926】Re:CSVファイルを開くマクロ
お礼  SR71  - 09/3/25(水) 10:53 -

引用なし
パスワード
   ご助言感謝します。
ほかの類題を参考にしたのであって質問はこれが初めてで
マルチポストではありません。誤解されるような書き方でした。

>それを使わないのは、別の目的があるかと思います。
>それらを実現する為にも、少しでも勉強した方が良いかと思います。
そのとおりで、ファイルを開いた後に別の作業をするマクロがあって、
それと結合させるつもりです。

【60928】Re:CSVファイルを開くマクロ
発言  つん  - 09/3/25(水) 11:30 -

引用なし
パスワード
   ▼SR71 さん
こんにちは^^

>選択クリックしても無反応でうまくいきません。
ということは、ファイルを開くダイアログまでは出てるんですよね?


>Sub auto_open() 'ファイルを開くダイアログ
>
>  Dim aFile As Variant
> 
>  aFile = Application.GetOpenFilename _
>    ("Excelファイル (*.csv), *.csv", , , , True) 
>
>End Sub

えーと、これでは、変数「aFile」に、ダイアログから選んだファイル名を格納するところまでしか出来てません。
ここから、実際にファイルを開く処理を書かないと、確かに何も起こらないと思いまする。

そのへんのやり方は、ここで検索しても仰山でてくると思います。

【60929】Re:CSVファイルを開くマクロ
お礼  SR71  - 09/3/25(水) 11:34 -

引用なし
パスワード
   ありがとうございます。
もう少し勉強してきます。

【60930】Re:CSVファイルを開くマクロ
発言  neptune  - 09/3/25(水) 11:45 -

引用なし
パスワード
   ▼SR71 さん:
こんにちは

ちょっとだけ
元々VBAは英語圏の言語だから、各命令は暗号じゃなく割りと意味を
推測できるようになってます。
例えば、GetOpenFilename ってのは、
単語の意味としてはGet OpenFilenameとすると、
「開くファイルの名前を取得する」なんですよね。
range:範囲 然り、cell:細胞、然りです。

なので、GetOpenFilename は「開くファイルの名前を取得する」だけの
役割を持ったコマンドなんです。

開くには開くコマンドがあります。

それは強力なHelp機能である、マクロの記録で知ることが出来ます。
多分 Workbooks.Open・・・・
となるはずです。これを活用しない手はありません。

このコマンドで、先に取得したファイルのパスを指定してやれば良いのです。
それだけです。

もう少し言うと、そんな事はHelpに書いてます。使用例まで。
Helpを見る習慣はつけましょう。

・・・しかし、autoopenはVBAでBookを開いた時も実行されましたっけ??
まぁ〜この辺りはやってみればわかります。

【60933】Re:CSVファイルを開くマクロ
発言  つん  - 09/3/25(水) 15:20 -

引用なし
パスワード
   ちょっとやってみてたんですが・・・・
エラーが(>_<)
なんでかな?と思ったら、

>  aFile = Application.GetOpenFilename _
    ("Excelファイル (*.csv), *.csv", , , , True)

のファイルの種類の指定がおかしいみたいです。
(私も頼りなくてすみません・・・)


  aFile = Application.GetOpenFilename("カンマ区切りテキスト(*.csv),*.csv")


かな・・・・

これで、フルパス付きのファイル名を取得して、
キャンセル押されたときの処理もして、
neptuneさんもおっしゃってる通り、
Openメソッドで開いたらOKかと思いまする。

3653 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free