重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

VBAの超初心者です。
まだ勉強し始めなのですが、仕事上、身の丈以上のものがどうしても必要になり
困っているのでどなたか教えてください。

DropBox上で共有ファイルに対してマクロを使いたいと思ったのですが、DropBox上に保存できるのは
普通のxlsxのファイル形式のようです。
そこで自分のPC内に個人用マクロファイルとしてマクロを保存すれば良いかとやってみたのですが
試しに、拡張子xlsx形式のファイルで個人用マクロファイルから実行してみたら
あるセルに対するマクロは実行できました。
もう一つ、セルの名前を探すマクロの方は中途半端な形で、うまく実行できませんでした。

そもそも何故、マクロ有効ファイル(xlsm)でないのに実行できるものとできないものがあるのでしょう?

クラウドに保存するような共有ファイルではマクロを使えないのでしょうか?
もし、何か方法があるのであれば教えていただけないでしょうか?

A 回答 (4件)

先程、DropBox で、保存側と共有側、両方で試してみましたが、xlms ファイルに特に問題は出ませんでした。

内容的には、外部サイトにアクセスしてレートを取得して、計算をするという単純ですが、セキュリティとしては厄介な部分を含んだマクロです。

セキュリティ上、通常のフォルダーではない所なので、ブックを開く際に、シートの上方に黄色の帯で、「セキュリティの警告」「マクロが無効にされました」と出てきて、「コンテンツの有効化」をクリックすれば、マクロは動きます。

しかし、Excelのバージョンによって、若干、反応が違うようです。
だから、ダイレクトにExcelファイル指定で、クリックで起動するのは辞めたほうがよいというだけです。一旦、Excelを立ち上げて、ファイル・オープン・ダイアログでファイルをロードした方がよいでしょう。それと、扱いに不便があるなら、OneDriveの方が良いのかもしれません。

>そもそも何故、マクロ有効ファイル(xlsm)でないのに実行できるものとできないものがあるのでしょう?

それは、マクロが特定の環境でしか動かないようにしてあるか、外部のセキュリティが働いているかどちらかだと思います。また、それは懸命な措置かもしれません。

>PC内に個人用マクロファイルとしてマクロを保存すれば良いかとやってみたのですが
私は、この意味はよく分かりませんが、個人用マクロブックは、規定の位置になければ、読み込まれませんし、一般のマクロとは別物だと考えたほうがよいでしょう。詳しくない場合は、むやみに触らないほうがよいです。必ずしも、マクロ搭載のブックがマクロだけを制御しているとは限らないからです。
    • good
    • 0
この回答へのお礼

色々頭の中でごっちゃになっていたことがすっきりしました。
DropBoxではxlsm形式は使えないのかと思っていたらできるのですね。
確かに、試しにやってみたらできました!
最初やった時うまくいかず、できないものかと思い、個人用のPCにマクロを保存すれば???と安易に考えてしまいました。

他の方のご指摘で個人用マクロファイルはそういう使い方するものではないのだと知った次第です。

お礼日時:2019/07/02 23:02

> セルの名前を探すマクロの方は中途半端な形で、うまく実行できませんでした



個人用マクロファイル(PERSONAL.XLSB)のコードが、名前定義のされたセルの名前を使用するものになっているが、
何かの事情で、DropBox上で共有ファイルとして保存した拡張子xlsx形式のファイルには、そのシート名や名前定義セルが保存されていない状態になっていると、使えなくなると思います。
何かの事情というのは、マクロのコードを作るときには、セルに名前定義をしてからそのセルの名前を使用するコードとして、(PERSONAL.XLSB)を書き換え保存したのだけれども、DropBox上で共有ファイルとして保存してある拡張子xlsx形式のファイルは名前定義を使用していない素のシートであって、名前定義をしたシートのファイルは保存していないということもあると思います。
(PERSONAL.XLSB)に名前定義を使ったコードを保存すると、よほど慎重にしないと、同じ位置に同じ名前定義をしてあるbookでないと、想定外のことが起こると思います。
トラブル防止の観点では、(PERSONAL.XLSB)のコードでは、セル、Range指定を名前定義を使わないコードにするのが良いと思います。 シート名をコードで使用する場合も、似たようなことが起こると思います。
逆に言うと、意図していたBOOK以外に、(PERSONAL.XLSB)のコードを使って飛んでもないことになってしまうのを防止するために、名前定義がどのように使われているのかをチェックするコードを(PERSONAL.XLSB)の Subプロシージャ最初に書いておいて、該当がない場合は実行しないというようにしておくという予防安全にも使えるかもしれません。
http://blog.markun.net/article/62757243.html
    • good
    • 0
この回答へのお礼

名前の定義…まだ初心者本を前から順に見ながらの段階なので
試しに保存したコードはどちらも名前定義は使っていないです。
DropBox上でマクロが使えるかどうかわからなかったので、まだ自分のPCの中で試しただけです。
最終的にはDropBoxで使えるといいのですが、まだまだハードルが高そうです。個人用マクロファイルと名前定義は慎重に、くらいまでしか今の私には理解できないので、それを踏まえて考えたいと思います。

お礼日時:2019/07/02 22:22

>そもそも何故、マクロ有効ファイル(xlsm)でないのに実行できるものとできないものがあるのでしょう?



?? 個人用マクロファイルって「個人用マクロブック(Personal.xlsb 又は 2003以前のバージョンは Personal.xls)」のことでしょうか?
もしそうでしたらそれはxlsx形式のファイルからも実行できます。

マクロの記録機能を使うときに、そのマクロの保存先を「個人用マクロブック」にすると、初回に「個人用マクロブック(Personal.xlsb 又は 2003以前のバージョンは Personal.xls)」が自同生成されます。非表示モードのまま自動生成されます。(最終的にはPersonal.xlsbのファイル保存も必要ですが。)

それ以降、個人用マクロブックに書いたマクロやプログラムは、どのxlsxやxlsmからも実行できるようになります。

参考URL
https://hamachan.info/win8/excel/macro.html

なので、ご質問のようにDropBoxにxlsxを保存しても、それを起動したときは「個人用マクロブック(Personal.xlsb )」も非表示で裏方で起動されるので、プログラムやマクロは動くのではないでしょうか?

VBEのプロジェクトエクスプローラを見ると、Personal.xlsbが裏方で読みこまれていることが視覚的に確認できると思います。

なお、当然ですが、xlsxファイルにて「作業中のブック」にマクロを残そうとしたり、直接プログラムを書いたりすると、閉じるときに「マクロやプログラムは保存できません」みたいな感じのエラーになって、どうしても保存したい場合は xlsmに切り替えて保存させられるようになるかと思います。

>もう一つ、セルの名前を探すマクロの方は中途半端な形で、うまく実行できませんでした。

これは、もしDropBoxに入れない状態で正常動作し、DropBoxに入れたとたんにエラーになるなら、もしかしたらDropBoxのせいで正常動作しないのかもしれないですね。
    • good
    • 0
この回答へのお礼

komugiさまとmoto_koukouseiさまのレスで個人用マクロブックをどう使うのか勘違いしていたのがわかりました。
周りに聞ける人もいないので自分の中でもんもんとしていたことがすっきりしました。ありがとうございました。

お礼日時:2019/07/02 23:02

そもそも、個人用マクロファイルとして、保存する時点で、拡張子をxlsmにしないと、保存できないはずですが・・・・


マクロを含んだファイルを拡張子(xlsx)として、保存できたということでしょうか?
    • good
    • 0
この回答へのお礼

そうでした。マクロを含んだまま閉じようとしたらできないのに、閉じるときに気づきました。
まだ個人用マクロファイルがどのように働くのかがわかっていませんでした。

お礼日時:2019/07/02 22:09

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