Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


12191 / 13646 ツリー ←次へ | 前へ→

【11548】エクセルで作成したマクロファイルの配布 松下 栄伸 04/3/11(木) 12:51 質問
【11553】Re:エクセルで作成したマクロファイルの配布 カド 04/3/11(木) 13:12 回答
【11567】Re:エクセルで作成したマクロファイルの配布 松下 栄伸 04/3/11(木) 16:38 お礼
【11556】Re:エクセルで作成したマクロファイルの配布 Jaka 04/3/11(木) 13:30 回答
【11568】Re:エクセルで作成したマクロファイルの配布 松下 栄伸 04/3/11(木) 16:43 質問
【11572】Re:エクセルで作成したマクロファイルの配布 Jaka 04/3/11(木) 17:01 回答
【11579】Re:エクセルで作成したマクロファイルの配布 松下 栄伸 04/3/11(木) 18:02 質問
【11595】Re:エクセルで作成したマクロファイルの配布 Jaka 04/3/12(金) 9:56 回答
【11628】Re:エクセルで作成したマクロファイルの配布 [名前なし] 04/3/12(金) 14:58 質問
【11647】Re:エクセルで作成したマクロファイルの配布 04/3/13(土) 6:41 発言
【11652】Re:エクセルで作成したマクロファイルの配布 りん 04/3/13(土) 14:38 発言
【11654】Re:エクセルで作成したマクロファイルの配布 松下 栄伸 04/3/13(土) 15:21 質問
【11656】Re:エクセルで作成したマクロファイルの配布 りん 04/3/13(土) 16:06 回答
【11657】Re:エクセルで作成したマクロファイルの配布 りん 04/3/13(土) 16:22 回答
【11735】Re:エクセルで作成したマクロファイルの配布 Jaka 04/3/15(月) 16:12 回答
【11659】Re:エクセルで作成したマクロファイルの配布 カド 04/3/13(土) 16:39 回答
【11653】Re:エクセルで作成したマクロファイルの配布 松下 栄伸 04/3/13(土) 15:04 質問
【11765】Re:エクセルで作成したマクロファイルの配布 谷 誠之 04/3/16(火) 1:16 回答
【11874】Re:エクセルで作成したマクロファイルの配布 松下 栄伸 04/3/18(木) 9:21 お礼

【11548】エクセルで作成したマクロファイルの配布
質問  松下 栄伸  - 04/3/11(木) 12:51 -

引用なし
パスワード
   エクセルでマクロを組み、それを添付ファイルとしてメールで数十人の社員に送って使用してもらおうと考えています。
ためしに一人送ってみたのですが、受信者のパソコンでエクセルを開くとマクロが作成されていません。
バージョンの違いと思いエクセル97で作成して送っても見たのですがだめです。
(私のパソコンはエクセル2002が入っています。受信者はエクセル2000です。)

また、マクロの保存はVBEの、VBAProject(PERSONAL.XLS)のmodule1に保存しました。(受信した人がどのエクセルファイルを開いてもマクロが使用できるようにしたいため)
どなたか教えていただけませんか。

【11553】Re:エクセルで作成したマクロファイルの...
回答  カド E-MAIL  - 04/3/11(木) 13:12 -

引用なし
パスワード
   ▼松下 栄伸 さん こんにちは

>ためしに一人送ってみたのですが、受信者のパソコンでエクセルを開くとマクロが作成されていません。

作成されていないということは、マクロが消えてるということでしょうか?
そうでしたらセキュリティ設定が高すぎて、メールソフトが自動で消去している
のではないでしょうか?

【11556】Re:エクセルで作成したマクロファイルの...
回答  Jaka  - 04/3/11(木) 13:30 -

引用なし
パスワード
   マクロ記録した物を改良したんですね。
今度からマクロの保存先を「作業中のブック」にすると、開いているブックにマクロ記録される様になります。

で、PERSONAL.XLS(個人用マクロブック)から、開いているファイルにマクロを移動する手順。

VBAエディタを開いて、挿入 → 標準モジュール を選べば、プロジェクトウインドウで選択されているブックに新規モジュールが追加されます。

PERSONAL.XLSのModule1に書いてあるコードをそっくりカットして、マクロを保存したいブックのModule1にペーストする。

最後にボタン等との関連付けが変わっていますから、再度ボタンにマクロ登録し直してください。

【11567】Re:エクセルで作成したマクロファイルの...
お礼  松下 栄伸  - 04/3/11(木) 16:38 -

引用なし
パスワード
   ありがとうございます。
マクロがまったく消えています。
セキュリティは「中」になっていますので自動で
消えないと思うのですが・・・

【11568】Re:エクセルで作成したマクロファイルの...
質問  松下 栄伸  - 04/3/11(木) 16:43 -

引用なし
パスワード
   作業中のブックに保存し、メールすれば相手のほうで開いた際にマクロは消えていないでしょうか。
また、相手はどのエクセルを開いても、そのマクロを利用できるでしょうか。

【11572】Re:エクセルで作成したマクロファイルの...
回答  Jaka  - 04/3/11(木) 17:01 -

引用なし
パスワード
   >作業中のブックに保存し、メールすれば相手のほうで開いた際にマクロは消えていないでしょうか。
>また、相手はどのエクセルを開いても、そのマクロを利用できるでしょうか。

えーと、お考えになっている(想像している?)事が、間違っていると思います。
メールで送ったブックは、PERSONAL.XLS なんですか?

PERSONAL.XLSは、エクセルがマクロブックとして、プログラムフォルダのどこかしらに自動で作るブックです。

VBAエディタを開いて、プロジェクトウインドウの送ったブック名の所にマクロがありますか?
マクロが無いブックを送っても無い者は無いと言う事だと思います。

【11579】Re:エクセルで作成したマクロファイルの...
質問  松下 栄伸  - 04/3/11(木) 18:02 -

引用なし
パスワード
   「マクロ1」というエクセルファイルのVBエディターを開いて左側にある
VBAProject(PERSONAL.XLS)
MicrosoftExcelオブジェクト
モジュール
Module1
にコードを貼り付けたファイルをメールしました。
メールを受け取った相手がどのエクセルを開いても
マクロが使用できると思い「マクロ1」のところにはあえて
コードを貼り付けずに、PERSONAL.XLSに貼り付けたものです。

【11595】Re:エクセルで作成したマクロファイルの...
回答  Jaka  - 04/3/12(金) 9:56 -

引用なし
パスワード
   PERSONAL.XLSと「マクロ1」というエクセルファイルは、別ブックです。
PERSONAL.XLSを送ったのですか?
この辺が全くわからないので、何ともいえないのが現状です。

PERSONAL.XLSと言う名のブックを探してください。別のブックとしてあるのが解ると思います。
エクセルが起動していない状態で、PERSONAL.XLSをデスクトップにでも移動させてから、「マクロ1」というエクセルファイルを起動してマクロがあるかないかの確認をして下さい。
PERSONAL.XLSを開いていないので、マクロは無いと思いますが...。

確認後、エクセルを終了してPERSONAL.XLSを元のフォルダに戻しておくのを忘れずに。

【11628】Re:エクセルで作成したマクロファイルの...
質問  [名前なし]  - 04/3/12(金) 14:58 -

引用なし
パスワード
   ▼Jaka さん:
>PERSONAL.XLSと「マクロ1」というエクセルファイルは、別ブックです。
>PERSONAL.XLSを送ったのですか?
>この辺が全くわからないので、何ともいえないのが現状です。

あくまで「マクロ1」という名前のファイルを添付して送ったのですが、マクロを貼り付けたのは「マクロ1」ファイルの中のVBエディターを開き
VBAProject(PERSONAL.XLS)
MicrosoftExcelオブジェクト
モジュール
Module1
にコードを貼り付けてメールに添付しました。
「マクロ1」フォルダのModule1にコードを貼り付けると受け取った相手はそのフォルダでしかマクロを実行できないと思ったからです。
相手がどのエクセルファイルを開いてもマクロが実行できるように自分で勝手な解釈で上記の場所に貼り付けました。

【11647】Re:エクセルで作成したマクロファイルの...
発言    - 04/3/13(土) 6:41 -

引用なし
パスワード
   横から失礼します。

>あくまで「マクロ1」という名前のファイルを添付して送ったのですが、マクロを貼り付けたのは「マクロ1」ファイルの中のVBエディターを開き
>VBAProject(PERSONAL.XLS)
>MicrosoftExcelオブジェクト
>モジュール
>Module1
>にコードを貼り付けてメールに添付しました。
>「マクロ1」フォルダのModule1にコードを貼り付けると受け取った相手はそのフォルダでしかマクロを実行できないと思ったからです。
>相手がどのエクセルファイルを開いてもマクロが実行できるように自分で勝手な解釈で上記の場所に貼り付けました。


PERSONALにコード貼って添付したってことですか?
それだと相手の方はマクロ実行できません。
PERSONALはその名の通り,個人用(というかユーザー固有というか)のファイルですので。
マクロ保存先を作業中のブックにすれば大丈夫です。
といってもすでに完成してるということなので,新しいブックを開いてマクロ記録(保存先を作業中のブックにして),編集でコピペ…ですかね。
さらっと読んだのでズレてたらスルーしてくださいm(_ _)m

【11652】Re:エクセルで作成したマクロファイルの...
発言  りん E-MAIL  - 04/3/13(土) 14:38 -

引用なし
パスワード
   みなさん、こんにちわ。

>PERSONALにコード貼って添付したってことですか?

Personal.xlsは送っていないのではないですか?

マクロを特定のブックを起動したとき以外にも使いたい場合は、アドインにして配布すると便利ですよ。

【11653】Re:エクセルで作成したマクロファイルの...
質問  松下 栄伸  - 04/3/13(土) 15:04 -

引用なし
パスワード
   >マクロ保存先を作業中のブックにすれば大丈夫です。
>といってもすでに完成してるということなので,新しいブックを開いてマクロ記録(保存先を作業中のブックにして),編集でコピペ…ですかね。
>さらっと読んだのでズレてたらスルーしてくださいm(_ _)m

「マクロ1」のファイルの「作業中のブック」に保存し、そのファイルをメールして相手はどのエクセルファイルを開いても、そのマクロが使えるのでしょうか。

【11654】Re:エクセルで作成したマクロファイルの...
質問  松下 栄伸  - 04/3/13(土) 15:21 -

引用なし
パスワード
   >Personal.xlsは送っていないのではないですか?
>
>マクロを特定のブックを起動したとき以外にも使いたい場合は、アドインにして配布すると便利ですよ。

あくまでメールに添付して送ったのは、「マクロ1」という名前のファイルです。
ただVBコードを
VBAProject(PERSONAL.XLS)
MicrosoftExcelオブジェクト
モジュール
Module1
に貼り付けたということです。

アドインにして配布すると受け取った側は、どのエクセルファイルを開いても作成したマクロを使用できるのでしょうか。

【11656】Re:エクセルで作成したマクロファイルの...
回答  りん E-MAIL  - 04/3/13(土) 16:06 -

引用なし
パスワード
   松下 栄伸 さん、こんにちわ。

>>Personal.xlsは送っていないのではないですか?
>あくまでメールに添付して送ったのは、「マクロ1」という名前のファイルです。
>ただVBコードを
>VBAProject(PERSONAL.XLS)
>MicrosoftExcelオブジェクト
>モジュール
>Module1
>に貼り付けたということです。
 
 では、メールを受け取ったひとのパソコンにはPersonal.xlsがないか、Personal.xlsが存在してもまったく違うコードの書かれているPersonal.xlsということになります。マイドキュメントとかデスクトップみたいなものでしょうか(同じ名前だけど人によって内容が違う)。

 マクロ1.XLSというファイルをウィンドウを非表示にして保存したもの(開いてもワークシートが表示されない)を、メールで送信し、受信した人の[XLStart]フォルダにほりこんでもらえば、エクセルを起動すると必ず読み込まれる状態(PERSONAL.XLSと同じ動作)になります。

>>マクロを特定のブックを起動したとき以外にも使いたい場合は、アドインにして配布すると便利ですよ。
>アドインにして配布すると受け取った側は、どのエクセルファイルを開いても作成したマクロを使用できるのでしょうか。
 できますよ。
 コードの内容によってはいろいろと修正する必要があるかもしれませんけどね。

【11657】Re:エクセルで作成したマクロファイルの...
回答  りん E-MAIL  - 04/3/13(土) 16:22 -

引用なし
パスワード
   松下 栄伸 さん、こんにちわ。

>>>Personal.xlsは送っていないのではないですか?
>>あくまでメールに添付して送ったのは、「マクロ1」という名前のファイルです。
>>ただVBコードを
>>VBAProject(PERSONAL.XLS)
>>MicrosoftExcelオブジェクト
>>モジュール
>>Module1
>>に貼り付けたということです。
> では、メールを受け取ったひとのパソコンにはPersonal.xlsがないか、>Personal.xlsが存在してもまったく違うコードの書かれているPersonal.xlsとい
>うことになります。
 ↓書き忘れ。意味のわからない文章書いてすみません。
 なぜならPERSONAL.XLSを送ってないからです。マクロ1.XLSとは別のブックなので、PERSONAL.XLSが必要なのならばPERSONAL.XLSを送らないと相手には意味がありません。
>マイドキュメントとかデスクトップみたいなものでしょうか(同じ名前だけど人
>によって内容が違う)。

 ただ、受け取る人が、もともとPERSONAL.XLSを利用している場合は、送ってこられても使えない(同じ名前のブックは同時に開くことはできないから)ので、違う名前でいいと思いますよ。名前よりも[XLStart]にあるということが重要になりますから。

> マクロ1.XLSというファイルをウィンドウを非表示にして保存したもの(開い
>てもワークシートが表示されない)を、メールで送信し、受信した人の[XLStart]
>フォルダにほりこんでもらえば、エクセルを起動すると必ず読み込まれる状態
>(PERSONAL.XLSと同じ動作)になります。

 (以下省略)

補足
XPの場合(NTも?)はアクセス権によっては[XLStart]フォルダをさわらせてもらえません。

【11659】Re:エクセルで作成したマクロファイルの...
回答  カド E-MAIL  - 04/3/13(土) 16:39 -

引用なし
パスワード
   ▼松下 栄伸 さん こんにちは。
私も横から失礼します。

>あくまでメールに添付して送ったのは、「マクロ1」という名前のファイルです。
>ただVBコードを
>VBAProject(PERSONAL.XLS)
>MicrosoftExcelオブジェクト
>モジュール
>Module1
>に貼り付けたということです。

送ったのがマクロ1.xlsで
貼りつけたのはpersonal.xlsであれば、

当然相手のマクロ1.xlsにはプログラムコードは有りません。

<対応策>
personal.xlsを送る。
または、
マクロ1.xlsの標準モジュールファイルにコードを貼りつけ
マクロ1.xlsを送る

【11735】Re:エクセルで作成したマクロファイルの...
回答  Jaka  - 04/3/15(月) 16:12 -

引用なし
パスワード
   非常に大事な事なんですが、マクロ1.XLSと言うブックにボタンとか有るのですか?
マクロ1.XLSが、表示されていない状態で使えるようになっていれば、りんさんのおっしゃることで良いんですけど、ただしPERSONAL.XLSに書いたコードをマクロ1.XLSに移してからそれ相応に関連付け等を治してからです。

> マクロ1.XLSというファイルをウィンドウを非表示にして保存したもの(開い
>てもワークシートが表示されない)を、メールで送信し、受信した人の[XLStart]
>フォルダにほりこんでもらえば、エクセルを起動すると必ず読み込まれる状態
>(PERSONAL.XLSと同じ動作)になります。

私が気になっていたこと。
1、マクロ1.XLSと言うブックにボタンとか有るのですか?
2、表示されていなければ使えない物なのか?
3、ツールバーとかも関係しているのか?
4、汎用に使えるようなコードになっているのか?
5、他色々。

【11765】Re:エクセルで作成したマクロファイルの...
回答  谷 誠之 E-MAIL  - 04/3/16(火) 1:16 -

引用なし
パスワード
   松下さん、VBA研究所の主宰者、谷です。

色々な人が色々に回答をよせておられますが、ちょっとおさらいしてみましょう。

まず、通常、「マクロの記録」機能を用いて作成したマクロは、その記録をするための作業を行ったブックに記録されます。

従って、そのブックを開いていないと、マクロは実行できません。

しかし、そのブックさえ開いていれば、どのブックに対してもマクロが実行できます。

一方、PERSONAL.XLS は、Excelが起動した時に自動的に開くブックです。
特に指定しなくても、PERSONAL.XLS は必ず開きます。
この中にマクロを登録しておけば、Excelを起動したら自動的に開くわけですから、そのマクロはいつでも実行できる、ということになるわけです。
このPERSONAL.XLS は、「XLSTART」と呼ばれるフォルダに保存されます。
逆に言うと、PERSONAL.XLS でなくても、「XLSTART」というフォルダにブックを格納しておけば、そのブックはExcel起動時に必ず自動的に開くようになるのです。

で、その「XLSTART」の場所ですが、規定値は

C:\Program Files\Microsoft Office\Office\XLStart です。

しかし Windows 2000 や Windows XP の場合は、これがユーザーごとに存在します。ユーザー名が TANI だと、

C:\Documents and Settings\TANI\Application Data\Microsoft\Excel\XLSTART

になります。
マクロを含むブックをメールで送った後、「上記のフォルダにそのファイルをコピーしてください」ってのは、コンピュータに詳しくない人にはあまり指示できるものではありません。ので、おすすめできません。

次に、「作ったはずのマクロがみあたらない」ということですが、見つかりましたか?もしかしたら、PERSONAL.XLS を保存しなかったのではないか、と考えます。
PERSONAL.XLS は通常、単体で保存するものではありません。Excelを終了させる際に「個人用マクロ ブックを保存しますか?」と聞いてくるのです。これにうっかり「いいえ」と答えてしまうと、PERSONAL.XLS は保存されません。

りんさんが回答されていますが、あるブックに保存したマクロは、そのブックを開いている限り、他のブックにも実行できます(ということは、同時にふたつのブックを開かなければならなくなりますが)。もちろんマクロの組み方によって、多少の変更が必要でしょう。あるブックは作業対象が A列なのに、別のブックでは B列が対象になっている、という場合は、それなりに汎用性のあるマクロの作り方をしなければなりません。それは別途、ご質問ください。

これでいい? > Jakaさん・・・

【11874】Re:エクセルで作成したマクロファイルの...
お礼  松下 栄伸  - 04/3/18(木) 9:21 -

引用なし
パスワード
   ▼谷 誠之 さん:
>一方、PERSONAL.XLS は、Excelが起動した時に自動的に開くブックです。
>特に指定しなくても、PERSONAL.XLS は必ず開きます。
>この中にマクロを登録しておけば、Excelを起動したら自動的に開くわけですから、そのマクロはいつでも実行できる、ということになるわけです。
>このPERSONAL.XLS は、「XLSTART」と呼ばれるフォルダに保存されます。
>逆に言うと、PERSONAL.XLS でなくても、「XLSTART」というフォルダにブックを格納しておけば、そのブックはExcel起動時に必ず自動的に開くようになるのです。

>マクロを含むブックをメールで送った後、「上記のフォルダにそのファイルをコピーしてください」ってのは、コンピュータに詳しくない人にはあまり指示できるものではありません。ので、おすすめできません。

谷さんありがとうございます。
PERSONAL.XLS にマクロを貼り付けてメールしても相手がブックを開いたときにはマクロがないことがわかりました。その記録をするための作業を行ったブックに記録して、そのブックを添付ファイルとしてメールすれば相手もマクロを使用することができる。ただし、いろんなブックでそのマクロを利用しようとすると記録してあるブックを開いておかなければいけないということですね。ただしXLStartに保存すれば自動的に開くので、いちいち開く必要がないということですね。しかしコンピュータに詳しくない人が多い会社ですのでXLStartに保存してくださいという指示はちょっと難しいと思っています。そこで新たな方法として以前りんさんからアドバイスをいただいた「アドイン」なるものでやってみようと考え、テストであるホームページに簡単なアドインがあったのでダウンロードして次のことをしました。
1.ブックをデスクトップに保存
2.エクセルブックを開いて「ツール」の「アドイン」から参照で保存したブックを指定してOK
3.エクセルブックを閉じようとすると「保存して閉じると、次開くときに有効となる」といったメッセージが出たので保存
4.ブックを開いても何も変化なし(新規ツールバーもない、VBEにもマクロの記録なし)
といった状況でどうやってアドインを利用するのか判らず、詰まってしまいました。
現在、いろいろ試しています。

12191 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free