アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクスプローラによりファイルを選択して右クリックメニューで
「送る」で音楽ファイルを開いたりする機能があります。
これをエクセルVBAで実行できないでしょうか。

A 回答 (3件)

一旦、ダメ出ししたので、私の発言などはもう期待はされていないのでしょうけれど、もう一度、#1のお礼欄を読み直してみました。



ただ、私も長くVBAをやっているけれども、一度も、VBAでSendTo を利用するという質問は見たことがないとSendTo は、それぞれの任意の内容であること、それぞれのショートカットの質的に違うので、そんなに簡単ではないと思うのです。VBAでは、明確にこれという動作を命令させるコードを書くか、拡張子で判定させてソフトウェアを起動するという、二種類しかやったことがありません。

>「送る」で音楽ファイルを開いたりする機能があります。
仮に必要なら、このようなことが可能です。

以下は、拡張子で判定させて起動する方法です。予め、拡張子とソフトウェアの関連付けが必要です。
ただし、メールの送信などは、ショートカットを予め設定したほうが楽でしょう。

例:
A1:
D:\Music\201501_1Q-part4.mp3 マウスカーソルをA1において、ダブルクリックすると音楽がなり
A2に
D:\Excel\test2.csv  'ダブルクリックすると、Excelが開きます。

'//シートモジュール
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
Dim WSHShell As Object
  Set WSHShell = CreateObject("Wscript.shell")
 WSHShell.Run Target.Value
End Sub

//
ただ、もう少し考えてみます。
    • good
    • 0
この回答へのお礼

何度も回答いただき恐縮しております。
エクセルでは不可能と諦めています。

パソコン上で「送る」という機能を利用した事が無いと小生の説明が
不十分なので内容を理解していただけないと思います。
「送る」についてPCでの作業内容を具体的に表現してみます。

利用したいアプリは、例えば名称をcomv.exeとします。
ファイルの拡張子が「.avi」や「.wmv」などを「mp3」に変換するソフトです。
これを実行するには次の二通りの作業があります
①エクスプローラで表示した音楽ファイルを複数曲選定して右クリックして
「送る」を選択するとSendtoフォルダが表示されて、その中のcomv.exeをクリックする。

②あるいはcomv.exeを先に起動しておき複数選定した音楽ファイルをcomv.exe
にドロップダウンする。

①か②の作業をフォルダを替えながら何度か行い常の目的は達せられますが
複数選定というのがミソです。

以上の作業をエクセルVBAで実行するには
例えばシートセルのA1~Anに音楽ファイルのフルパス名を沢山記入しておく。
このセルのうち必要セルを複数選択して実行ボタンを押せば
comv.exeに「送る」という機能を実現させたい訳です。

もし1曲だけを変換したいなら
Shell c:\program・・\comv.exe c:\abc・・\xyz.avi でも実行できますが
目的は数十曲の違うフォルダーのファイルを一度に「送り」たい訳です。

お礼日時:2019/03/01 03:05

>マウスでドロップダウンの作業


Excelの標準的な使い方とは違うようですね。

ズバリこうしたいというご説明でないと私には無理です。
セルにファイルパスを記入した後に、それをどうするのか、分かりません。例えば、ActiveBook全体のシートにパスを書いて操作しようとしても、基本的にそのブックを開いている限りは、移動したりすることはできません。
    • good
    • 0

>「送る」で音楽ファイルを開いたりする機能があります。


それは、音楽アプリ側が付け足したものだと思いますが、個々のマクロは別として、設定マクロでしたら、

このような書き方をします。

'//標準モジュール
Sub Auto_Open
   Call RightClickMenuAccess '直接中身を書いても良い。
End Sub

Sub RightClickMenuAccess()
'Dim i As Integer
'右クリックメニュー登録
With Application.CommandBars("CELL")
  .Reset '一旦元に戻す
  With .Controls.Add _
   (Type:=msoControlButton, Before:=1, Temporary:=True) '<=恒久的に残らない-temporary
   .BeginGroup = False
   .Caption = "マクロ名"
   .OnAction = "xxxxxxx" '実際のマクロ名
  End With
End With
End Sub

ただし、長年使っていると元のメニューが壊れてしまうことがあります。その時は、
C:\Users\xxxxxx\AppData\Local\Microsoft\Office
Excel15.xlb, Excel.officeUI などが作られているので、バックアップを取ってから、1つずつ確認して削除するとよいです。 なお、Excel15.xlb は、不要ファイルだそうですが、いつのまにか出来ています。
    • good
    • 0
この回答へのお礼

早速の回答有難うございました。
 質問の内容が不十分だったです。
エクセル内での右クリックではなく
エクスプローラでファイルを複数指定して右クリックすると
メニューが表示されますが、その中に開くの下の方に
「送る」がありまして、SENDTOで設定したアプリへ送りたいわけです。
エクスプローラではなくエクセルのセルにファイルパスをいくつか記入しておき
その作業をVBAで行いたいわけです。
 送るではなくマウスでドロップダウンの作業がVBAで
できれば結果は同じなのでこれでも結構なのですが。
うまく表現できませんがよろしくお願いいたします。

お礼日時:2019/02/22 14:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!