おしえてくださいNo.07261
pyxis さん 18/06/01 15:04
 
ツールバーに使い勝手を上げる以下のような要望を満たすボタンを配置したいのです
が、やり方がわかりません。教えて頂けないでしょうか?


1.選択しているファイルのファイル名(拡張子なし)でgoogle検索をするボタンを設
置したい

2.選択しているファイルのファイル名(拡張子なし)で同じ階層にフォルダをそのフ
ァイル名で作成して、その新しいフォルダのなかに選択していたファイルを入れたい。
そのボタンをツールバーに配置したい


ヘルプを見るだけでもわかるらしいのですが自分が読み込んでもわかりませんでした。
教えてください。よろしくおねがいします。

[ ]
RE:07261 おしえてくださいNo.07262
秀丸担当 さん 18/06/01 16:45
 

ツールバーのボタンで高度なことをするには、リンクバーまたはツール項目バーを表
示させ、スクリプトを登録する必要があります。
リンクバーにはブックマークの内容が表示されるので、ブックマークを登録するとい
いです。
例えば以下の内容のスクリプトを、C:\Folder\Test.jsというファイル名でメモ帳や
秀丸エディタで作ります。

Message("テスト");

ブックマークを追加して、「パス」の右側の「>>」ボタンからスクリプトの参照をし
てtest.jsを指定します。
または、パスの部分の先頭に「script:」を書いて、「script:C:\Folder\test.js」
と書いてもいいです。
こうしておくとスクリプトをボタンにできます。

基本的には一般的なvbscriptやjscriptと同じなので、vbscriptやjscriptで適当にWe
b検索して見つかるようなスクリプトは、だいたい書き加えたりして使えます。ファ
イル名の取得などは秀丸ファイラーClassicの独自のことになります。


>1.選択しているファイルのファイル名(拡張子なし)でgoogle検索をするボタンを設置
>したい

googleのURLの書き方が合っているか自信が無いですが、スクリプトを以下のように
して一応できました。

var iItem=GetNextItem(-1,2);
if(iItem<0){
  Message("選択がありません");
} else {
  var objFSO = new ActiveXObject("Scripting.FileSystemObject");
  var objShellApp = new ActiveXObject("Shell.Application");
  var strFile = GetItemPath(iItem);
  var strBase = objFSO.GetBaseName(strFile);
  objShellApp.ShellExecute("https://www.google.co.jp/search?q="+encodeURI(st
rBase));
}


>2.選択しているファイルのファイル名(拡張子なし)で同じ階層にフォルダをそのファ
>イル名で作成して、その新しいフォルダのなかに選択していたファイルを入れたい。
>そのボタンをツールバーに配置したい

これは以下のようにしてできました。
ファイル名の取得や開く動作以外は、フォルダの作成やファイルの移動自体は適当に
vbsとかをWeb検索して知ったものです。

var strDir=GetDirectory();
if( strDir != "" ) {
  var iItem=GetNextItem(-1,2);
  if(iItem<0){
    Message("選択がありません");
  } else {
    var objFSO = new ActiveXObject("Scripting.FileSystemObject");
    var strFile = GetItemPath(iItem);
    var strBase = objFSO.GetBaseName(strFile);
    var strTarget = strDir+"\\"+strBase;
    objFSO.CreateFolder( strTarget );
    objFSO.MoveFile(strFile,strTarget+"\\");
    Open(strTarget);
  }
}

[ ]
RE:07262 ありがとうございました。解決しNo.07272
pyxis さん 18/06/04 19:49
 
 ご回答ありがとうございました。助かりました。すぐにこんな満足行く答えが頂け
て幸いです。ありがとうございました。

 2つの質問のご回答どちらもこちらで設定したところきちんと動きました。
二つ目のフォルダを作る方においてはそこから進んで、予め同名ファイルが存在する
とエラーがでる問題にたどり着いたので、わからないながらJscriptを個人的に修正
してみました。


 そこでちょっとお聞きしたいのですが、私はスクリプトの知識がほぼゼロです、な
ので秀丸ファイラ上で動かすスクリプトにまだまだ疑問が多々あります。そういうこ
とを質問するにあたってこちらでどの程度伺ってもよろしいのでしょうか?

 たとえば実用上弊害なく動きも関係ないのですが、選択したファイルの拡張子なし
のファイル名のみの文字列をクリップボードに送りたいのですが、ネット検索すると
Jscriptでそれらしいのがいくつも見つかりますが秀丸上で動かすことが一度もでき
ませんでした。しかし秀丸ファイラのスクリプトのサンプルをみて SetClipboard( )
 というのをみつけて初めて秀丸ファイラ上で動かすことができました。しかしJscri
ptではいまだやり方がわかりません。
 こういった疑問をこちらでどの程度まで訊いてよろしいのでしょうか?

 解決いたしました。質問のご回答ありがとうございました。

[ ]
RE:07272 ありがとうございました。解決しNo.07275
秀丸担当 さん 18/06/05 09:19
 

スクリプトに関するご質問は、どこまでが秀丸ファイラーClassicできることなのか
判断がつけにくいところがあるかもしれないので、わかる範囲であれば回答させてい
ただきます。
簡単なものであればすぐにできることもあり、複雑な場合は手がかりになりそうな情
報だけになることもあります。

ちなみに秀丸ファイラーClassicのことではないですが、秀丸エディタのマクロでた
まにあることとして、ある中規模のプログラミングが必要なテキストを処理するマク
ロの質問で、秀丸エディタで完結することであってもヒントだけの回答になることも
あります。

[ ]