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

お世話になります。
先ほどまでCSVファイルではVBAが使えないと思って一旦CSVファイルに出力してから、専用のエクセルシートにコピペしてマクロボタンで処理していたのですが、先ほどふとしたきっかけでCSVファイルでもエクセルのマクロが動くことが分かりました。
CSVとエクセルを勘違いしてVBAを編集していて気づきました。

しかし、VBAを動かすために専用のエクセルファイルをいちいち開くのではシート全体をコピペするのとあまり手間が変わらないので、CSVファイルから直接エクセルに仕込まれたVBAを動かう方法は無いのでしょうか?

大した手間ではないのですが毎日の作業なので一々のコピペは出来れば省略したいです。

質問者からの補足コメント

  • BSで締め切りたいのですが、何故か「まだBSは選べません」とのコメントがあるので解除され次第BSで締め切りますのでご了承ください。

    No.3の回答に寄せられた補足コメントです。 補足日時:2023/04/04 17:14

A 回答 (3件)

No1です。



>出来れば「個人用マクロブック」(PERSONAL.XLSB)のVBAにショートカット
>キーを割り付ける方法をご教示いただけるとありがたいのですが。
普通にエクセルを立ち上げて、リボンの「開発」-「マクロ」から対象のマクロを選択し、
「オプション」でショートカットキーを割り当てることができます。
それではダメってことでしょうか?
この回答への補足あり
    • good
    • 1
この回答へのお礼

早々のご回答重ね重ねありがとうございます。

上手く行きました!!
これまでショートカットの割付はマクロの記録で最初に設定する事しかやったことが無かったので分かりませんでした。

マクロはシートに実行ボタンを配置してクリックで実行がほとんどでした。
マクロの記録で出来る簡単な処理は最初にショートカットキーを設定していました。

これまた非常に参考になるご回答で感謝!!

お礼日時:2023/04/04 17:09

CSVファイルに直接VBAを仕込むことはできませんが、CSVファイルを開くたびに専用のエクセルファイルを開く手間を省く方法があります。



以下の手順で、CSVファイルをダブルクリックしたときに、専用のエクセルファイルが自動的に開いてVBAが動くように設定できます。

専用のエクセルファイルを開き、VBAエディタを開きます。

VBAエディタ内で、エクセルのオブジェクトである"Workbook"を選択します。

"Workbook"のイベントを選択し、"Open"イベントをダブルクリックします。

"Open"イベントの中に、以下のコードを挿入します。


Private Sub Workbook_Open()
'CSVファイルを読み込む処理
End Sub

コード内に、CSVファイルを開いてVBAを実行する処理を追加します。

保存して、専用のエクセルファイルを閉じます。

これで、CSVファイルをダブルクリックすると、専用のエクセルファイルが開いて、VBAが自動的に実行されます。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

#No1さんのご回答で解決しました。

お礼日時:2023/04/04 17:10

こんにちは



>CSVファイルでもエクセルのマクロが動くことが分かりました。
少し認識が違っているようです。
CSVファイル自体はテキストファイルなので、直接マクロを含みませんし、マクロも動作しません。
(テキストエディタでマクロを使えるもので開けば、エディタのマクロは使えますが・・)
多分、「CSVファイルをエクセルで開いている」と想像しますので、あくまでもVBAはエクセル上で動いていることになります。
まぁ、CSVファイルをエクセルと関連付けていて、ダブルクリックすればエクセルで開くようになっていれば、「同じもの」と思ってしまうのかも知れませんけれど・・


>CSVファイルから直接エクセルに仕込まれたVBAを動かう方法は無いのでしょうか?
具体的な内容が不明ですが、エクセルで開くことを前提としてよいのなら、いわゆる「個人用マクロブック」(PERSONAL.XLSB)にマクロを登録しておけば、そのマクロは、開いているエクセルからならいつでも利用可能になります。
https://allabout.co.jp/gm/gc/297809/

その他の方法としては、アドインを作成しておく方法もあるかも知れません。
https://excel-ubara.com/excelvba4/EXCEL297.html
あるいは、エクセルではなく、VBやWSHなどで直接実行する方法等も考えられるかも知れません。
    • good
    • 0
この回答へのお礼

早々のご回答ありがとうございます。
ハイ、>「CSVファイルをエクセルで開いている」と思います。

と言うことで、「個人用マクロブック」(PERSONAL.XLSB)の標準モジュールに専用Bookのコードを転記してそのマクロを実行すると期待通りに動くことを確認しました。
そこで欲が出て、今まで通りショートカットキーCtrl+Aキーで動くようにしようと下記の記事を見つけてやってみましたが、詳細不明で試行して見ましたが全く動かず。

追加の要求になってしまって恐縮ですが、出来れば「個人用マクロブック」(PERSONAL.XLSB)のVBAにショートカットキーを割り付ける方法をご教示いただけるとありがたいのですが。
下記の3行のコードはどこに記載するのでしょう?
標準モジュールとThis Bookに転記してみたのですがダメでした。

==================================
■OnKeyメソッドで指定したキーにマクロを設定する
ApplicationオブジェクトのOnKeyメソッドは、指定したキーにプロシージャを登録できます。
MacroOptionsメソッドでは[Ctrl]キーか、[Ctrl]+[Shift]キーにしかプロシージャを登録できませんでしたが、OnKeyメソッドは、ほかにも[Alt]キーやファンクションキーなどにも設定が可能です。

[Ctrl]+[J]キーにSample1を設定するには次のように記述します。

Sub Sample4()
Application.OnKey "^j", "Sample1"
End Sub

お礼日時:2023/04/04 15:53

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