SSブログ

エクセル小僧:VBAからDFを起動 [コンピューター]

以前、VBAで2つのテキストファイルを比較することを考えていたのですが。[猫]



閑が無くなってしまったので、DFの力を借りることにしました。
ワークシート上は、こんな感じです。

001.jpg

3つのセルに、DF.exe、テキストファイル1&2のファイル名(フルパス)を入力します。3つのセルには、それぞれ、"DF", "file1", "file2"という名前を付けておきます。マクロを起動するためのボタンを置いときます。

マクロの中身は、こんな感じです。

01: Sub USDiff1()
02:   ' 機能:2つのテキストファイルを比較する
03:   ' 【変数定義】
04:   Dim file1(2) As String ' ファイル名
05:   Dim str1 As String ' 文字列
06:   ' ファイル名
07:   file1(0) = Range("DF").Value ' DF.exeのファイル名(フルパス)
08:   file1(1) = Range("file1").Value ' テキストファイル1のファイル名(フルパス)
09:   file1(2) = Range("file2").Value ' テキストファイル2のファイル名(フルパス)
10:   ' ファイルが存在するか確認
11:   For i = 0 To 2
12:     If Dir(file1(i)) = "" Then
13:       MsgBox i & ": " & file1(i) & "が存在しません。"
14:       Exit Sub
15:     End If
16:   Next
17:   str1 = file1(0) & " " & file1(1) & " " & file1(2)
18:   Shell str1, vbNormalFocus
19: End Sub

07-09行目:file1配列に、3つのファイル名(フルパス)を取り込みます。
11-16行目:3つのファイルが存在するか、確認します。無い場合は、メッセージを表示してマクロを終了する。
17行目:"DF.exe", テキストファイル1, テキストファイル2のファイル名(フルパス)を半角スペースを区切りとして連結します。
18行目:Shell関数を使って、DFを起動します。vbNormalFocusは、『フォーカスを持ち、元のサイズと位置に復元されるウィンドウ』という意味のウィンドウスタイルに関するオプションらしいです。

ワークシート上の比較ボタンにマクロをリンクさせて、DFを起動すると、こうなります。

002.jpg

【関連ページ】
Shell関数

DF

【ジョージのダイエット記録】
正月の暴飲暴食から立ち直りつつある今日このごろ。。

体重:60.0Kg 体脂肪:15.7% 内臓脂肪:8.0レベル 骨量:2.6Kg
基礎代謝:1377kcal/日 体内年齢:25才 筋肉:48.0kg 筋肉スコア:0
(2012/9/2)

【つぶやき】
百聞は一見にしかず。事件は会議室で起きてるんじゃない。
ぶつくさ、言ってないで、現場見にきなさいヨ。
出張費が無いなら、近場の現場だっていいでしょ。
客先の技術者と語り合うのもいいもんですよ。。刺激になるし。

【出張で見つけた】
今週、尾張に出張していたのですが、今池に『すいどうみち』なる散歩道を見つけました。

す いどう道緑道/番外(谷口交差点 ~ 今池)

しら河(ひつまぶし)


【今日の1曲】
人にやさしく

ヤバイぜ!(7)  コメント(1)  トラックバック(1) 
共通テーマ:日記・雑感

ヤバイぜ! 7

コメント 1

cheese999

nice! ありがとうございます。
(^o^)ノ
by cheese999 (2012-09-17 21:50) 

Facebook コメント

トラックバック 1

トラックバックの受付は締め切りました

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。