Excel VBA質問箱 IV

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

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


801 / 13645 ツリー ←次へ | 前へ→

【78230】パワーポイントマクロとの連携 りった 16/6/1(水) 14:30 質問[未読]
【78234】Re:パワーポイントマクロとの連携 γ 16/6/1(水) 20:22 発言[未読]
【78235】Re:パワーポイントマクロとの連携 りった 16/6/2(木) 11:26 発言[未読]
【78236】Re:パワーポイントマクロとの連携 亀マスター 16/6/2(木) 20:09 回答[未読]
【78237】Re:パワーポイントマクロとの連携 γ 16/6/2(木) 20:32 発言[未読]
【78241】Re:パワーポイントマクロとの連携 りった 16/6/3(金) 9:57 お礼[未読]

【78230】パワーポイントマクロとの連携
質問  りった  - 16/6/1(水) 14:30 -

引用なし
パスワード
         お世話になります。

リストと送り状フォーマットを元に、送り状を作りたいです。
・リストはExcelで、送り先やItemNo等が記載されています。
・送り状フォーマットはパワーポイントで、送り先やItemNo等の記入欄が有ります。
・送り状のファイルは一つで、中に100個ぐらいの送り状が入ります。

パワーポイントマクロはいまいち分かりませんが、スライドをコピーして新しいファイルを作ることは出来ました。
文字を変えるのも自力解決できるでしょう。(多分)

Excelマクロとパワーポイントマクロをどう連携させたら良いでしょうか?
Excelマクロからパワーポイントマクロの関数を呼べるのでしょうか?
でもその場合関数引数がものすごい数になってしまいますよね?

パワーポイント側からエクセルマクロを呼べるのでしょうか?
それが可能なら、件数取得関数と、n件目取得関数を作ればいいのかなと思いますが、
byRefの引数は使えるのでしょうか?
例:public sub getListData(byVal iNo as long, byRef sItemNo as String, byRef sAddress as String)

最悪、Excelでパワーポイントマクロのコードを作って、VBA エディタに貼り付けますが、それをやってしまうと他の人に作業を任せられなくなります。

尚、送り状フォーマットをExcelに取り込んで、Excelマクロ(よく使ってます)で作ろうとも思ったのですが、
パワーポイントファイル自体も提出必要なので、その方法は出来ません。

【78234】Re:パワーポイントマクロとの連携
発言  γ  - 16/6/1(水) 20:22 -

引用なし
パスワード
   詳しく聞かないといけないのかもしれませんが、
普通は Wordの「差し込み印刷」でする作業ではないですか?
powerpointマクロも書けるだろうが、
Wordのそれなら、ツールになっているからマクロすら不要です。
一度調べてみてはどうでしょうか。

もし勘違いなら、Powerpointでなければならない必然性を説明してください。

【78235】Re:パワーポイントマクロとの連携
発言  りった  - 16/6/2(木) 11:26 -

引用なし
パスワード
   回答有難うございます。

> Powerpointでなければならない必然性を説明してください。
フォーマットがPowerpointで提供され、Powerpointファイルを提出する必要が有るからです。
Wordでの提出は、お願いしてもまず通りません。

現状、Wordの差し込み印刷も分かってません。調べたらわかるのかもしれませんが。

【78236】Re:パワーポイントマクロとの連携
回答  亀マスター  - 16/6/2(木) 20:09 -

引用なし
パスワード
   パワーポイントのフォーマットがどのようなものかよくわかってないのですが、エクセルのデータを取り込みたいということであれば方法はあります。

ひとつは、パワーポイントからエクセルを起動して操作してやることです。
パワーポイントやワードのVBAからエクセルVBAを操作するには、VBEの画面で「ツール」→「参照設定」でMicrosoft Excel 14.0 Object Library(数字はオフィスのバージョンによって異なります)にチェックを入れれば良いいです。

この状態で、
Dim Xls As New Excel.Application
とすれば、Xlsを使ってエクセルを操作できます。

ただし、外部へ配布するなら、参照設定がうまくいかないことがあるので、参照設定は使わず、
Dim Xls As Object
Set Xls = CreateObject("Excel.Application")
とした方がいいでしょう。


もう一つの方法は、ADO接続でエクセルファイルをデータベースファイルとして扱うことです。これも参照設定を使う方法と使わない方法がありますが、私はADOを使ったことがないので、詳しくはわかりません。

【78237】Re:パワーポイントマクロとの連携
発言  γ  - 16/6/2(木) 20:32 -

引用なし
パスワード
   # 自宅からしかコメントできませんので、遅くなりました。

> パワーポイント側からエクセルマクロを呼べるのでしょうか?
> それが可能なら、件数取得関数と、n件目取得関数を作ればいいのかなと思いますが、
> byRefの引数は使えるのでしょうか?
> 例:public sub getListData(byVal iNo as long, byRef sItemNo as String, byRef sAddress as String)

既にコメントがありましたように、Office familyなので、お互いのオブジェクトを操作することが可能です。
リストを配列によみこんで、それを元に、繰り返し処理をすればいいだけです。

> 最悪、Excelでパワーポイントマクロのコードを作って、VBA エディタに貼り付けますが、それをやってしまうと他の人に作業を任せられなくなります。

え?じゃあ、何を質問しているのですか?

----------
> > Powerpointでなければならない必然性を説明してください。
> フォーマットがPowerpointで提供され、Powerpointファイルを提出する必要が有るからです。
回答ありがとうございました。
でもそれは質問するうえでの成り行きでしょうね。
そう言わないと質問にならないからでしょ?

だって、どう考えたって、それは差込印刷の典型であって、
そうするのが一番簡単なわけです。
プレゼンテーションでもないのに PowerPointを送りつけるほうが
よほどどうかしてます。そうしたことを求める人に注意してあげるべきです。

ですので、私は
PowerPointの操作マクロを提示しません。
まあ、できないと解釈して貰って結構です。

どなたかが回答を寄せていただけるかもしれません。(一度発言されてその後消されたので)
期待してお待ち下さい。

【78241】Re:パワーポイントマクロとの連携
お礼  りった  - 16/6/3(金) 9:57 -

引用なし
パスワード
   回答ありがとうございます。

> ひとつは、パワーポイントからエクセルを起動して操作してやることです。
> パワーポイントやワードのVBAからエクセルVBAを操作するには、
> VBEの画面で「ツール」→「参照設定」でMicrosoft Excel 14.0 Object Library
> (数字はオフィスのバージョンによって異なります)にチェックを入れれば良いいです。

有難うございます。やってみます。

> どう考えたって、それは差込印刷の典型であって、
> そうするのが一番簡単なわけです。

そうなんでしょうね。(やったことは無いですが)

> プレゼンテーションでもないのに PowerPointを送りつけるほうが
> よほどどうかしてます。

同感です。

> そうしたことを求める人に注意してあげるべきです。

注意しても通る見込みが無く、関係が悪化するだけなのでしません。提出先は別会社ですし。
そもそも、「マニュアルでやるのが本来の有り方で、自動化してサボろうなんてけしからん」
って文化(宗教?)なので、相談するだけで危険なのです。

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