[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『Everything.exeに張り付けて検索』(タロウZ)
今は、Selectionの値だけをコピー状態にして Everythingをアクティブにして張り付けています。
Sub N_Everything() Dim rc As Long Selection.Copy rc = Shell("C:\Program Files\Everything\Everything.exe", vbNormalFocus) If rc = 0 Then MsgBox "起動に失敗しました" End Sub
そこで改良したいのですが、Selectionの値と".pdf"をつなげた文字列を Everything.exeに自動的に張り付けて検索したいのですがどうすれば いいでしょうか?よろしくお願いします。
< 使用 Excel:Excel2016、使用 OS:Windows10 >
気になったので。質問者がeverythingexeを拡めようとしてなければいいのですが。 コードを試すために回答者がeverythingexeをインストールするように仕向けている ようにも思えるし。
https://indoorotaku.blogspot.jp/2014/10/everythingexe.html
(通りすがり) 2018/02/18(日) 20:14
そんなおもいはもうとうなく、ただ作業を楽にしたい思いだけです。 上記ソフト以外でもいいのですが・・・ windouwsの検索はちょっと使いずらいので。良い方法をお願いします。 (タロウZ) 2018/02/18(日) 21:02
とりあえず、EXEのフルパスにスペースが含まれているので、"""C:\Program Files\Everything\Everything.exe"" " & Selection.Text & ".pdf" のようにダブルクォーテーションで括らないと駄目かと思います。
(???) 2018/02/19(月) 09:16
ちょっと、内容がズレてきました。 Web検索ではなく、cドライブの検索をしたいのです。
Selectionの値と".pdf"をつなげた文字列を検索ソフトに張り付けて実行したいのですが・・・ 張り付るのは、Selectionの値と".pdf"をつなげた文字列です。 エクセルでcopyしてもSelectionの値だけしかほかのソフトに貼り付けでできません。
検索ソフトは開けます。 vbaから検索ソフトをアクティブにできますか?アクティブになればいいのですが!
(タロウZ) 2018/02/19(月) 20:54
Shellで呼び出してますけど、そのツールがコマンドラインから制御可能で、記述構文も間違いないのは確認済みなんでしょうか?
「貼り付ける」という言葉を使用されてるのでちょっと気になりました。
(もこな2) 2018/02/19(月) 21:17
難しい言葉ばかりで・・・言っている意味が分からなくなりました。 ちょっとむりみたいですね・・・ (タロウZ) 2018/02/19(月) 21:30
>エクセルでcopyしてもSelectionの値だけしかほかのソフトに貼り付けでできません。 なので Selectionの値 は張り付くとして
Selectionが複数だと配列になりますが、一旦、何処へ張り付けて そこをコピーされてはいかがでしょうか? ↓これぐらいで何とかなりませんでしょうか? Option Explicit Sub てすと() Dim x As Variant Dim i As Long Dim j As Long x = Selection.Value If IsArray(x) Then For i = LBound(x, 1) To UBound(x, 1) For j = LBound(x, 2) To UBound(x, 2) x(i, j) = x(i, j) & ".pdf" Next Next Range("G1").Resize(UBound(x, 1), UBound(x, 2)).Value = x Else x = x & ".pdf" Range("G1").Value = x End If Range("G1").Copy Range("G2") End Sub
(SoulMan) 2018/02/19(月) 22:23
Everything.exe というアプリは、このインデックスを独自生成する事で、高速化しているようですね。そうなると、新しいファイルが増えたときに、インデックスの再構成をしないと、それがヒットしないかと思います。 性能が良くても、情報が不足する事があるようでは、いまいちに思います。 そして、私が書いたようにコーディングしてもキーワード指定できなかったのだとしたら、アプリが引数指定に対応していないか、または何かオプション付きで指定しないといけないのでは?(アプリが引数を見るかどうかは、作者次第ですから)
別案ですが、折角Excelを使っているのだし、マクロで目的のファイルの一覧表を作ってしまえば良くないですか? 表ができた後は、オートフィルタで絞っても良し、クリックしたら開くようにしても良し。 貴方の好きなようにできますよ。
Sub test() Const cPATH = "C:\" Dim cFiles As Variant
cFiles = Split(CreateObject("WScript.Shell").Exec("CMD /C DIR /A:-D/B/S """ & cPATH & "*.pdf""").StdOut().ReadAll(), vbNewLine) Range("A1").Resize(UBound(cFiles), 1).Value = WorksheetFunction.Transpose(cFiles) End Sub (???) 2018/02/20(火) 09:06
選択範囲 G列 F列 a1 b1 → a1.pdf b1.pdf a2 b2 → a1.pdf b2.pdf
G列の2行めもa1になってしまいます。どこを直せばいいでしょうか?
別件ですが失礼ですが、(SoulMan)さんってここで数年前までよく 見かけたあの(SoulMan) さんでしょうか・・・
(???)さん、コードはさっぱりわかりませんが、 いろんなことがエクセルでできるのですね。
皆さん、忠告、指導ありがとうございます。 (タロウZ) 2018/02/20(火) 21:30
こんばんは! そのコードはコピーはアレンジして頂けるだろうということで 本当に適当にかいてますから Range("G1").Copy Range("G2") を↓ Range("G1").Resize(UBound(x, 1), UBound(x, 2)).Copy Range("K1") ぐらいにして頂ければ何とかなりますでしょうか? というか、コピーはいらないですね 出てきたところをコピーしてください。
>見かけたあの(SoulMan) さんでしょうか・・・
多分、そうだと思います。 最近また始めたんですよね よろしくお願いします。
でも、Blankが長かったので上手く行かないです。 自分の出来る範囲内でお答え出来たらな と思っていますので 今後ともよろしくお願いします。(^_-)-☆
(SoulMan) 2018/02/20(火) 21:44
早速ありがとうございます。 できました!
私のニックネームを変えましたが、以前何回かお世話になったのを覚えています。 またあのマクロが見れるとは光栄です! (タロウZ) 2018/02/20(火) 22:00
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.