
No.5ベストアンサー
- 回答日時:
補足の意味がよく分かりませんが・・、
私の使わせてもらっている、notepad++ では
shell("C:\Program Files (x86)\Notepad++\notepad++.exe d:\DATA\docs\memo.txt")
のようにして開けます。ほとんどのエディタが可能かと思いますよ。
また、txt 拡張子にそのエディタが関連付けられているなら
shell("explorer.exe d:\DATA\docs\memo.txt") や
createobject("Shell.application").shellexecute("d:\DATA\docs\memo.txt")
で、そのアプリケーションから開かれます。
(windows7の場合、XPでも同様だったかな?)
この回答への補足
nicotinismさま
ご回答ありがとうございました。
わたしのいま見ている参考図書は
ナツメ社のExcel VBA 実践技 & 上級技大全 97/2000/2002対応です。
その238ページにShell関数の使用例として、
Option Explicit
Sub NotePad()
Dim taskID As Double
taskID = Shell("Notepad.exe C:\readMe.txt",vbNormalFocus)
End Sub
というソースがのっていましたのでNotepadを使う範囲では第一引数をわたすことは
可能とおもわれます。
わかりやすくフリーエディターとかきましたが、実際は囲碁に特有の
棋譜エディターでして、テキストファイル拡張子は.sgfです。
残念ながら、上記コードを参考としてモジュールに記述してためした結果。
エディター起動まではできますが、引数までは反映されません。
実行ファイルもフルパスつき、そしてテキストファイルもフルパスつきでの結果です。
ちなみに実行ファイルとテキストファイルをまったくおなじフォルダーにおいております。
ドラッグ&ドロップでは即時にそのテキストファイルをひらいてくれます。
やはりマイクロソフトの開発したプログラムの仕様が特別なようにおもわれます。
なお、わたしのPCはOSがWindows XPで、エクセルは2003です。
No.7
- 回答日時:
その『棋譜エディタ』を教えてもらった方が、話が早いかと思います。
フリーウェアなので何処かからダウンロードできませんかね?
この回答への補足
nicotinismさま
そっそくのご連絡ありがとうございます。
おしゃるとおりですね。
わたしの使用しているのはユキノシタ2です。
ぐぐっていただければかならずでてきますのでよろしくおねがいいたします。
ユキノシタはエディターですので、拡張子.sgfのファイルを作成できますし。
よみこんで編集もできます。
通常のテキストエディターとちがうのは表示されるのが碁盤に石が配列されている状態が
でてくるところです。
sgfファイルは
テキストですので、Notepadなどでひらけますが、表示されるのは
Sgfファイル特有のコードが表示されます。
いってみればそのコードを翻訳してその棋譜エディターは碁盤画像に石を配置するわけですね。
わたしもよくわかりませんが、今回の第一引数の問題は
Notepadが可能で、ほかはだめということは
たとえばレジストリーあたりに相違があるのかなぁというかんじがしてきました。
いかがでしょうか?
nicotinismさま
その後、コメいただいておりませんが、想像するのに、「第一引数」を
そのままうけわたしは不可が結論と理解させていただきたいと存知ます。
お手数、多謝でした。
No.6
- 回答日時:
> やはりマイクロソフトの開発したプログラムの仕様が特別なようにおもわれます。
そんなことはありません。
ファイルを指定できるアプリの方が多いです。
・先ずはその棋譜エディタのマニュアルとかヘルプで、「コマンドライン」とか「実行時オプション」とかいう項目で、使い方を確認してください。
通常は、第一引数にそのままファイル名を書きますが、なんらかのオプション (-iとか /Fとか)で指定するアプリもあります。
・実行ファイルか読み込みたいファイルのフルパスに、スペースは含まれてませんか?(Program files とか)
その場合、ダブルクォートで括る必要があります。
"C:\Program Files\foo\bar.exe" "C:\Document and Setting\MyName\My Document\inputfile.sgf"
という具合に。VBAでは、これ全体を""でくくる必要があるので
"""C:\Program Files\foo\bar.exe"" ""C:\Document and Setting\MyName\My Document\inputfile.sgf"""
(""中の"は "" と2つ並べて書く)
のようにする必要があります。
この回答への補足
kmeeさま、ご助言ありがとうございます。
棋譜エディターのヘルプやマニアルに関しては、操作方法までで、
ソフト本体にかんするテクニカルな説明はありません。
ソースを公開しているわけでもありません。
そこで、わたしのもっている本のShell関数の説明には,kmeeさまの
おしゃるような構文の説明はありませんので、
そのような説明が載っている本をごしょうかいいただければありがたいです。
ぜひ勉強させていただきたいのでよろしくおねがいいたしますm(_ _)m
No.4
- 回答日時:
そのエディタのマニュアルを読むのが一番確実だと思います。
「コマンドラインオプション」とかいう感じの項目で、複数ファイル指定できるならその旨が書いてあります。
大抵は、複数指定すればそれらを開くのが普通だと思います
No.3
- 回答日時:
一挙にというか順次ならば
同一フォルダにあるなら
Dir 関数でループしつつ
Shell("そのフリーのエディタのフルパス Dir関数から得られたテキストファイルのフルパス")
のような感じで行えば良いでしょうし、
http://homepage2.nifty.com/kasayan/vba/dir.htm
任意のファイルだけなら、MsoFileDialogなどで選択したものを
順次渡してゆけば良いと思いますけど?
http://blog.livedoor.jp/akf0/archives/51587451.h …
この回答への補足
nicotinismさま
ご回答ありがとうございます。
Shell関数は実行ファイル起動だけですよね、現実的には
そのフリーエディターを実行できればすこし手間はかかるのですが、
そこからさらに目的のテキストファイルを手作業でさがすという方法しかないかなといまは
考えております。(みなさまのご意見をふまえて、それがベストのようにかんじております。)
MsoFileDialogはまったくわからないですが、ダイアログから
目的とするテキストファイルのディレクトリーをさがすということであれば
やはりそのフリーエディターへ第一引数としてわたすということはむずかしいように
おもわれますが、いかがでしょうか?
No.2
- 回答日時:
> ウィンドウズ用のマクロ記録自動記録ソフト、「UWSC」
> などをつかって、
そんなのがあるんだ?・・・必要ないと思うけど。
拡張子が登録されているならエクスプローラのフォルダオプションで
DOSコマンドに対応するコマンドが登録されているよ。
これがドロップしたときの動きにも関係してると思うけど、詳しくは
分かりません。↓引数に展開してくれるだけじゃないかと思うけど。
http://www.softel.co.jp/blogs/tech/archives/2140
DOSコマンドの引数をアプリがどう解釈するかは、アプリ側で
決められるので、アプリを限定せずに回答はありません。
ローカルルールというか、デファクトスタンダードとして
第1引数はファイルパスの場合が多いですけど。
だから、#1さんは、やってみて開いたら第1引数に
ファイルパスでいいんじゃないの?と言っているだけだと思います。
正確に知るには、アプリ開発者に聞くしか方法は無いです。
この回答への補足
ご回答ありがとうございました。
今回の質問の主旨は
MARU4812さんもご存知だとおもいますが、EXCEL VBAマクロの目的が、
手作業を省く自動化なので、VBAマクロのなかでそうしたエディター(マイクロソフトが
開発したものは別として)へ第一引数をVBAマクロからそのソフトにひきわたすことが
可能かどうかなので、
VBscriptやら、Visual Basicなどを駆使しても、
ご両者さまのご意見から、かなり無理そうということが推測されます。
そのような理解でよろしいでしょうか?
(理由:DOS窓をつかって、作成したBATファイルなどを起動させるのであれば、
VBAマクロをいったん中止して、たとえばデスクトップのそのソフトのアイコンを
ワンクリックすればすむわけなので。)
No.1
- 回答日時:
試してみたほうが早い。
できるものもあれば、できないものもあると思う。
フリーディターとか言われても星の数ほどあるだろうし。
アプリのショートカット アイコンやアプリの exe ファイルにテキストファイルをドロップしてみる。
そのアプリが起動して、目的のテキストファイルが開かれるかを確認する。
この場合、そのアプリが引数でテキストファイルのパスを受け取って Open する処理に対応してると考えられる。
この回答への補足
さっそくのアドバイスありがとうございまいした。
X-1919さんのおしゃられることを具体的に推測いたしますと。
たとえば、ウィンドウズ用のマクロ記録自動記録ソフト、「UWSC」
などをつかって、そのフリーアプリにテキストファイルをドロップしてみて
そこに記録されたマクロコードを咀嚼検討してみれば、ひょっとしたら、エクセルVBA
を母体としたマクロコードからの実行の糸口がさぐれるかもしれないといった
ことでしょうか?
いずれにしても、UWSCの文法とエクセルVBAの文法がおなじわけではなさそうなので、
かなりむずかしそうですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルvbaでdocuworksprinter...
-
エクセルVBAで一つ上の階層...
-
xcopyコマンドの進行状況を表示...
-
エクセルのマクロで特定フォル...
-
開いているファイルを削除し、...
-
fopenでのパス指定
-
コマンドプロンプトのコピー関...
-
エクセルマクロでファイル名の...
-
VBA★PDFをPDFアプリで印刷し...
-
エクセルのプロパティーでセキ...
-
エクセルのデータをメモ帳に貼...
-
エクセルのハイパーリンクがコ...
-
VBAでフォルダ内のhtmlファイル...
-
EXCEL VBAを使ったファイル解析...
-
EXCELのVBAでEOFを誤認識
-
vbsでファイルやフォルダのコピ...
-
ファイル名と同名のフォルダを...
-
パワーポイントの文字数
-
ファイルサーバ上のファイルが...
-
WSHでファイルとフォルダのコピ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルvbaでdocuworksprinter...
-
エクセルVBAで一つ上の階層...
-
Excel 相対パス
-
実行ファイルのパスを取得したい
-
xcopyコマンドの進行状況を表示...
-
【VB.NET】App.configにファイ...
-
ExcelのVBAで上書き保存を確...
-
コマンドプロンプトのコピー関...
-
VBAでパワーシェルを実行したい...
-
エクセルのマクロで特定フォル...
-
Eclipse
-
VBAでの共有パスにつきまして
-
VBA★PDFをPDFアプリで印刷し...
-
C#でのProcess.Startと変数path
-
【VBA】ExcelマクロでCSVファイ...
-
ExcelVBAの使い方 ¥の使い方...
-
fopenでのパス指定
-
EXCEL(VBA)で指定フォルダ内の...
-
A列に記載されているフォルダ...
-
VBAで、VBのapp.pathと同じ機能...
おすすめ情報