
VBAの超初心者です。
まだ勉強し始めなのですが、仕事上、身の丈以上のものがどうしても必要になり
困っているのでどなたか教えてください。
DropBox上で共有ファイルに対してマクロを使いたいと思ったのですが、DropBox上に保存できるのは
普通のxlsxのファイル形式のようです。
そこで自分のPC内に個人用マクロファイルとしてマクロを保存すれば良いかとやってみたのですが
試しに、拡張子xlsx形式のファイルで個人用マクロファイルから実行してみたら
あるセルに対するマクロは実行できました。
もう一つ、セルの名前を探すマクロの方は中途半端な形で、うまく実行できませんでした。
そもそも何故、マクロ有効ファイル(xlsm)でないのに実行できるものとできないものがあるのでしょう?
クラウドに保存するような共有ファイルではマクロを使えないのでしょうか?
もし、何か方法があるのであれば教えていただけないでしょうか?
No.3ベストアンサー
- 回答日時:
先程、DropBox で、保存側と共有側、両方で試してみましたが、xlms ファイルに特に問題は出ませんでした。
内容的には、外部サイトにアクセスしてレートを取得して、計算をするという単純ですが、セキュリティとしては厄介な部分を含んだマクロです。セキュリティ上、通常のフォルダーではない所なので、ブックを開く際に、シートの上方に黄色の帯で、「セキュリティの警告」「マクロが無効にされました」と出てきて、「コンテンツの有効化」をクリックすれば、マクロは動きます。
しかし、Excelのバージョンによって、若干、反応が違うようです。
だから、ダイレクトにExcelファイル指定で、クリックで起動するのは辞めたほうがよいというだけです。一旦、Excelを立ち上げて、ファイル・オープン・ダイアログでファイルをロードした方がよいでしょう。それと、扱いに不便があるなら、OneDriveの方が良いのかもしれません。
>そもそも何故、マクロ有効ファイル(xlsm)でないのに実行できるものとできないものがあるのでしょう?
それは、マクロが特定の環境でしか動かないようにしてあるか、外部のセキュリティが働いているかどちらかだと思います。また、それは懸命な措置かもしれません。
>PC内に個人用マクロファイルとしてマクロを保存すれば良いかとやってみたのですが
私は、この意味はよく分かりませんが、個人用マクロブックは、規定の位置になければ、読み込まれませんし、一般のマクロとは別物だと考えたほうがよいでしょう。詳しくない場合は、むやみに触らないほうがよいです。必ずしも、マクロ搭載のブックがマクロだけを制御しているとは限らないからです。
色々頭の中でごっちゃになっていたことがすっきりしました。
DropBoxではxlsm形式は使えないのかと思っていたらできるのですね。
確かに、試しにやってみたらできました!
最初やった時うまくいかず、できないものかと思い、個人用のPCにマクロを保存すれば???と安易に考えてしまいました。
他の方のご指摘で個人用マクロファイルはそういう使い方するものではないのだと知った次第です。
No.4
- 回答日時:
> セルの名前を探すマクロの方は中途半端な形で、うまく実行できませんでした
個人用マクロファイル(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
名前の定義…まだ初心者本を前から順に見ながらの段階なので
試しに保存したコードはどちらも名前定義は使っていないです。
DropBox上でマクロが使えるかどうかわからなかったので、まだ自分のPCの中で試しただけです。
最終的にはDropBoxで使えるといいのですが、まだまだハードルが高そうです。個人用マクロファイルと名前定義は慎重に、くらいまでしか今の私には理解できないので、それを踏まえて考えたいと思います。
No.2
- 回答日時:
>そもそも何故、マクロ有効ファイル(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のせいで正常動作しないのかもしれないですね。
komugiさまとmoto_koukouseiさまのレスで個人用マクロブックをどう使うのか勘違いしていたのがわかりました。
周りに聞ける人もいないので自分の中でもんもんとしていたことがすっきりしました。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAを一度起動するとずっと出て...
-
昨日まで動いていたエクセルの...
-
excelファイルに使われているVB...
-
【マクロ】excelファイルを開く...
-
別のパソコンでエクセルのマク...
-
VBA マクロ実行時エラー’1004Ra...
-
Excelが勝手にシート移動してし...
-
個人用マクロブックにマクロを...
-
エクセル終了時の保存確認メッ...
-
サクラエディタのマクロ設定を...
-
マクロを消すマクロは不可能?
-
ExcelのマクロでUSBを制御でき...
-
外部データを取り込むマクロ
-
エクセルマクロが海外PCで開けない
-
EXCELでマクロを記録する際に、...
-
Excelマクロ ファイル名が変わ...
-
マクロを実行するとパス名が無...
-
【マクロ】エラーが発生⇒実行時...
-
EXCEL マクロ クリップボードク...
-
「開いているすべてのブック」...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで印刷する方法 エクセ...
-
VBAを一度起動するとずっと出て...
-
昨日まで動いていたエクセルの...
-
エクセル終了時の保存確認メッ...
-
excelファイルに使われているVB...
-
コピーしたファイルのマクロを...
-
別のパソコンでエクセルのマク...
-
Excelが勝手にシート移動してし...
-
【マクロ】宣言は、何のために...
-
Excelマクロ ファイル名が変わ...
-
【マクロ】エラーが発生⇒実行時...
-
VBA マクロ実行時エラー’1004Ra...
-
excelのマクロ実行でブロックさ...
-
エクセル2013vbaで、見えない名...
-
マクロを消すマクロは不可能?
-
エクセルマクロ実行中に別ファ...
-
EXCEL マクロ クリップボードク...
-
マクロを設定したのに、拡張子...
-
excelが別プロセスで起動してし...
-
アクセスでファイルを開いたと...
おすすめ情報