壊れ, OutlookでGmailを使用するには、Gmailのアカウント側でいくつか設定をしなければいけない, Windows7のAccess2007をデータソース(ODBC)を使って、SQL Server 20, こんばんわ。今日、ハマッたことを書きたいと思います。 完璧主義のこだわり派には非常にイライラする作業。, エクセルやワードは矢印キーのみで同様に動かすことができるので、 前項で紹介したPowerPoint(パワーポイント)のグリッドとガイド。 初期設定では線に合わせる設定になっている為、逆に合わせたくない、微妙に位置を調整したい人にとっては必要のない機能となってしまいます。ここではその解除の方法と一時的に無効にする方法を紹介します。 ‘オブジェクト名, スライド番号, 上からの位置, 左からの位置, 横幅, 順番(0→最前面 1→最背面) の順で Microsoft Office PowerPoint, パワーポイント, 位置調整, 図形, 場所調整, 画像, 移動, 表, パワーポイントで、図形や画像等のオブジェクトの細かい位置調整は、 Excelで作った複数のグラフや表を、ひとつずつ貼付先のPowerPointのシートの位置・貼付ける大きさを指定しておいてから、コピペするコードです。 はじめに 本記事は、こちらの派生記事です。 [VBA]PowerPointの指定したスライドへExcelグラフを最背面で貼り付ける 会社の内線がなり「共有フォルダ上のAcces, 削除クエリで「指定されたテーブルから削除できませんでした。」と pp.Slides(pp.Slides.Count).Shapes.AddTextbox( _ ▷エクセルマクロの正しい学習方法 パワーポイントで、図形や画像等のオブジェクトの細かい位置調整は、 完 【SQL Server】Excel VBAのレコードセットを使ってテーブルの一括更新 それで厚かましいお願いですが、vbaど素人でして、わからないことがあり、お手すきの時に回答をいただけたら幸いです。一つのエクセルファイルにあるグラフを一つのスライドに貼ることはできたのですが、複数のエクセルファイルのものを新しいスライドを追加して、同じ処理をする、とういうことができません。なぜか新しいスライドを追加という簡単なことさえできません。20以上のエクセルファイルを一つのフォルダに入れ、ユーザーフォームでフォルダを選択すると、その中のエクセルファイルに対して連続で処理をする。という方法できたらと思います。フォルダ選択やファイルの呼び出しのコードは書けてます。よろしくお願いいたします。, adachiさん、コメントありがとうございます。情報が足りないので確認させてください。, まずは、貼付元のxlsxファイルは20以上とのことですが、コピーしたいオブジェクトは少なくとも20以上あるということですよね? それらをすべてファイル名、シート名、オブジェクト名まで指定して実行しますか? この方法は、あまりに数が多いとメンテナンスが面倒です。コピー元が少し変わっただけで修正しなければなりませんし…。, そういった場合、VBAでガッチガチに1つずつ位置や大きさまで指定して作るんじゃなくて、とりあえずざっくりとpptxに貼付けちゃった後、あとはそちらで要らないものを削除したり、位置や大きさを微調整したり、というほうが楽だと思います。, たとえば、コピーしたいものを「グラフ」だけで限定できるなら、フォルダ内の複数xlsxファイルについて、すべてのシート内のすべてのグラフオブジェクトをpptxスライドに貼り付ける、という仕様にするとか。これならクラスモジュールをつくらなくてもよいですし、コードもシンプルです。xlsx側のグラフの数や名称が変わっても問題ありません。そういった感じでいかがですか?, なお、新規スライドを挿入するタイミングはどこでしょうか? xlsxファイルごと、シートごと、1つのグラフごとあたりが考えられます。1スライドに複数のグラフが貼り付けられる場合、少しずつ右下にズレて貼り付けられていく形になると思います。, また、貼付先のpptxファイルは、既存のものを開いておいて使うのか、新規作成するかも教えてください。, 家でこちらのサイトに書き込みをしているため、自分が会社で書いたコードをお見せできなく、足りない点があるかと思いますが、なるべく状況を詳細に書きます。, 貼付元はエクセルファイルで、ファイルが20個あります。(名前は番号で1.xlsx, 2.xlsx, 3.xlsx〜20.xlsx) おかげさまで苦しい状況から脱する事ができました。 IT Diary , ますますのご活躍をお祈り申し上げます。, それはよかったです! だいぶ長い間お悩みだったようで、トンネル抜けるお手伝いができて光栄です。元々記事として書いてあったコードの応用なのと、adachiさんが丁寧に説明してくださったから早めに書けたんだと思います!, お気になさらなくて全然大丈夫なのですが、ExcelVBA初心者向けというテーマの書籍も書いてみたいと編集さんとお話はさせていただいているので、もし企画が通って出すことができたら、そのときはぜひ、お願いできたら嬉しく思いますw, お返事ありがとうございます。 変数のこともよく分かってなく、 ・グラフを一つ一つパワポにコピペするのは非効率… ▷エクセルマクロ入門 対価をお支払いしたいのですが、執筆されている本がAccess系で現在のところ業務で使う予定がなく、、 | 意外と知らない場合が多かったり。。, 「アニメーションの軌跡」の移動先の位置を調整する場合、「Ctrl」+「矢印」は使えない。 Excelで作った複数のグラフや表を、ひとつずつ貼付先のPowerPointのシートの位置・貼付ける大きさを指定しておいてから、コピペするコードです。, 前書いたやつは、Excel側のオブジェクトと貼り付け先PPTのスライド番号を指定して、位置と大きさは一定でした。, でも、「このグラフは1番めのスライドの左上へ大きめに」「こっちの表を同じスライドの右下へ小さめに」「このグラフは2番めのスライドにドンと大きく」…、みたいな感じでひとつずつ位置や大きさを細かく指定して貼り付けたいというご要望がありました。言われてみればそういう使い方のほうが汎用的ですよね!, Excelにあるグラフとか表を(グラフ名の調べ方は前述記事にありますので、間違えずに指定してください)、, このようにPPTの好きな場所へ好きな大きさで貼り付けます。貼り付け先のPPTは、指定されているスライドがすべて存在していて、既に開いているのが条件です。, 大きさについては、縦横比固定にしてあるので、横幅だけ指定すれば縦幅はそれに連動して自動で決まる、という感じです。, 前回はそれぞれの要素を配列を使って指定したのですが、ここ最近クラスモジュールがわかるようになってきて、これもクラスを使ったほうが断然やりやすいじゃん! と思って、効率的なコードを目指してやってみました。, セットの記述がだいぶ短くなりました。モジュールを超えて使うのでコレクションの宣言はPublicに。この方式なら持たせたいプロパティが増えても行数が増えないですね。, インスタンスの生成とプロパティをセットするサブルーチンを、標準モジュールのほうに書きました。これだとメインのコードで要素のセットが1行で済むので、コピペするオブジェクトがたくさんあっても書きやすいと思いました。, コピペしたいオブジェクトを増やしたい場合は16行目以降に追加してください。クラスを使って自分でプロパティを作っちゃえばコードが読みやすいし、配列のときと違って「全部で何個」というのを最初に指定しなくて良いので楽ですね。, かかか神が降臨なさったー!Σ(゚д゚lll) なんていうか、うっとりしてしまう綺麗なコードですね…(*´ω`*) そんなthom神のお導きにより、スマートになったコードがこちら。, クラスでFounctionを使って自身のインスタンスを返すとか…。。私には到底思いつきませんでしたヽ(゜´Д`)ノ゜。, コピペしたいオブジェクトを増やしたい場合は15行目以降に追加です。もうthom神には感謝してもし足りません。ありがとうございます!!!, こちらのサイト(追記:更に改コード)を参考にグラフをパワーポイントへ貼り付けることができました。大変助かりました。 ▷エクセルマクロの独学方法 top:=0, _ 2シート目にグラフが6個あり、そのうちのグラフ3という番号のものを同じスライドの左下、グラフ4を右上、グラフ5を右下に貼ります。 調べてみたけど、基本. 図形(シェイプ)の設定や操作をする方法ワークシート上に作成されている図形の移動、サイズの変更、図形の削除、複数の図形のグループ化などの図形の操作は以下のプロパティやメソッドを使用します。図形(シェイプ)の設定をするプロパティ一覧プロパティ内 エクセルマクロVBAでPowerpointを操作するためには、準備しておくことがあります。 準備|VBEで外部ライブラリへの参照設定でPowerPoint Libraryを追加. とりあえず、僕が探したところ三つありました。 【Microsoft Office】Access 2007でMDBファイルが開けない, 【Access】削除クエリの「指定されたテーブルから削除できませんでした。」の対処法, 【SQL Server】Excel VBAのレコードセットを使ってテーブルの一括更新, 【SQL Server】Excel VBAでSELECT文を実行してレコードセットへ取得, EXCELの一覧からメールを一括送信(添付ファイル可)機能追加版12 CDO版 メールの本文の文字化け対策☆完成UP☆ | 猫に小判. 2016 All Rights Reserved. Orientation:=msoTextOrientationHorizontal, _ そんなときは、パワーポイントの設定を変更し、マウスを使って位置を調整する。, 基本的には「描画オブジェクトをグリッド線に合わせる」のみチェックを外せば問題ない。, 「図形の整列時にスマートガイドを表示する」にチェックが入っていると、 width:=200, _ ▷エクセルマクロ習得者の体験談2, gene320さんは、はてなブログを使っています。あなたもはてなブログをはじめてみませんか?, Powered by Hatena Blog Copyright© いろいろと丁寧に教えてくださり感謝です。, また、手詰まりになった時にご連絡させてください。 前回はVBAから更新S, 問い合わせで、Outlookの「同期の失敗」フォルダを消したいと受けた。 (adsbygoogle = window.adsbygoogle || []).push({}); ▷エクセルマクロで出来ること ▷エクセルマクロVBAのお勧め講座 ExcelVBA初心者向けの本が出版された際はぜひ購入したいと思います。やはり一般事務しかやってこなかった者にとっては挫折しやすい分野かと思います。理解してないので、なかなか壁を超えることができません。何をやってもいちいちつまづいてしまいます。本で噛み砕いて説明してくださるとありがたいです。, そして、度々で申し訳ありません、おひとつお伺いしたいのですが、パワーポイントにテキストを入れる際、フォント名とサイズを指定する場合、どのように書けばいいのでしょうか。, *youさまが書いてくださったコード”’ブック名を挿入”を応用して、一番下の2行を追記しましたが、うまくいきませんでした。。, ‘テキストを挿入 参照設定とは、機能拡張のことです。 エクセルVBAからパワーポイントを操作をする場合は、Microsoft PowerPoint 16.0 Object Libraryにチェックを入 … ▷エクセルマクロとは? なお、毎回エクセルのファイルの名前、ファイル数は変わりますが、図番やグラフの番号は変わりません。図の大きさは変わったりしますが、こちらのサイト(追記:更に改コード)を参考にしましたところ、1.xlsxがパワポ1ページ目にきれいに貼れました。 .TextFrame.TextRange.Font.Name=”Meiryo UI” 意図しない図形や画像にスマートガイドが反応し、うまく調整できない場合がある。, 急に「保存フォルダ」が開けなくなった。 この度は食い逃げのような形で申し訳ありません。 今後wordpressやvbaの本を出版された際には必ずや購入させていただきます。もしくはこちらのサイトに貼られているアフィリエイトから物品を購入させていただきます。 For Each book in Workbooks ▷エクセルマクロの挫折しない勉強法 しかし、2ページ目以降のコードが書けません。 Outlookのバージョンは、2007のSP3。, Accessでクエリを実行しようとすると どのエクセルファイルも同じフォームで、貼りたいグラフや図の番号も同じです。 クエリ定義の SELECT で指定されている別名, 仕事の共有で使用しているエクセルを開くと、Excelの枠だけ表示されて何も表示されない。 Next ・パワポ資料の文字の大きさ、x軸y軸のテキスト、最大値や最小値を全て揃えるのは面倒 なぜか位置ズレが発生してしまい、スライドショーで悔しい思いをする ことがありますよね。 以下をマクロで適当な名前を付けて記述します。 100はそれぞれ必要な任意の数値にします。 With ActiveWindow.Selection.ShapeRange.Top = 100 '画像の上からの位置 ▷エクセルマクロ習得者の体験談1 : ・とにかく仕事でラクに終わらせたい!, そこで、この記事ではエクセルで作成したグラフをパワポに貼り付ける作業を自動化する方法を紹介します。, エクセル上の複数のグラフをパワポに連続でコピペする事例をプログラムコードに解説を入れながらお伝えしていきます。, パワーポイントを操作するマクロについてイメージをつかんでもらうために、事例を紹介します。, もし、エクセル上にグラフを自動作成するVBAプログラムを知りたいなら、以下の記事で解説しています。, まずは、エクセルVBAでパワポを操作するマクロを作成するときの全体像について以下で紹介します。, エクセルマクロVBAでパワーポイントの資料を作成する場合、メリットとデメリットがあります。, パワポのマクロは使いどころがあるので、メリットとデメリットを理解して使い分けるのが重要です。, ただし、パワーポイントを操作するためにエクセルVBAのライブラリ設定をする必要があります。, 仮に手入力でパワポ資料を作成する場合、作成時間は「パワポ資料のスライド数×1スライドあたり作成時間」で計算できます。, スライド数が10枚で、1スライドあたり作成時間が2分であれば、20分かかることになります。, しかし、一度マクロを作成してしまえば、今後発生する作成作業は全てマクロでボタン一つで終わらすことができます。, しかしこのような作業は、どれだけ確認しても必ず一つや二つはミスが残ってしまいます。, 同じ文字サイズでx軸y軸のテキストが入って最大値や最小値も入力された状態で作成されるのです。, また、動画で紹介しているようなパワポ作成の自動化ができれば、人に仕事を渡すのが容易になります。, エクセルVBAからパワポ操作をするとき、コード編集が難しいと感じることがあります。, 例えばスライド追加したりパワーポイントを開いたりする操作をするとき、見慣れないコードと感じる人は多いはずです。, そのため、エクセルのセル文字列やシート間の転記のようなプログラムばかり書いてきた人は戸惑ってしまうかもしれません。, 特に、初心者は「パワポ操作のマクロは知らないプログラムばかり…」となってしまいがちです。, そのため、パワポ操作マクロを使って定型作業の全てを自動化するというのは簡単ではないのです。, このように使い勝手が悪い部分があるので、パワポ操作のマクロは使いどころを見極めるのが肝心です。, しかし、事例ベースの情報が少ないため、最初に参考すべき軸となるコードがあまり出回っていないのが現実です。, そのような経験もあり、この記事でパワポ操作マクロの情報をあなたに届けることにしました。, 上記で、「[2] パワポ操作マクロは使い勝手がよくないことが多い」とお伝えしました。, 実際、パワポ操作マクロが役に立つ場面は少ないのが正直なところです。ただ、パワポマクロで効率化できることもあります。, それこそ、各拠点からのデータ収集から効率化すれば、月10時間以上の作業効率化も難しくはありません。, 実務では、以下のようなデータ分析や転記作業をマクロ化を考える方が効率化しやすいです。, それでは、以下でパワーポイント操作のマクロを作成する方法について具体的にお伝えしていきます。, エクセルマクロVBAでPowerpointを操作するためには、準備しておくことがあります。, エクセルVBAからパワーポイントを操作をする場合は、Microsoft PowerPoint 16.0 Object Libraryにチェックを入れる必要があります。, もし16.0がない場合は、「Microsoft PowerPoint (xxx) Object Library」にチェックを入れれば問題ありません。, 2.Microsoft PowerPoint 16.0 Object Libraryのライブラリにチェックを入れて、OKをクリック, 以下で紹介するコードは、エクセルで作成したグラフをパワーポイントに貼り付ける作業を自動化します。, もし、「マクロ1|エクセルでグラフを作成する」について、マクロを使ってグラフを自動作成する方法を知りたいなら、以下の記事で読んでみてください。, それは、使用するエクセルファイルと同じフォルダに「template.pptx」というパワーポイントファイルを事前に準備しておく必要があることです。, 「template.pptx」というパワーポイントファイルがないと、パワーポイントを呼び出せません。, それでは、作成したグラフをパワーポイントに貼り付けるマクロ(マクロ2)について詳しく解説をしていきます。, 5行目|pptfile, title, subtitle, pic をstring(文字列)型で変数設定, 例えば、今日の日付が2018/11/30であれば、「181130」に変換することができます。, 2行目|pptfileを「ws1のセルN8の値」と yymmdd の合わせた値にする, pptfileは、これからパワーポイントを新しい名前で保存するときの名称として使います。, 2行目|pptxとしてエクセルファイルと同じフォルダにある「template.pptx」というパワーポイントファイルを開く, 1行目|pptxslをパワーポイントファイルのスライド型、objをオブジェクト型でそれぞれ変数定義する, 2行目|pptxslを「template.pptx」の一枚目のスライドとしてセットする, 場所はスライド左上を始点として横に250、縦に150で、テキストボックスの幅を450、高さを300にする, テキストボックスの値は、subtitle (改行)(改行) "作成者 " pic (改行)(改行) yymmddとする, この事例では、エクセルに11個のシートがあるが、0からカウントするため、kazu=10となる, 1行目|for next構文でチェックしているエクセルのシート名が"データ"でないなら, 2行目|そのシートをアクティブにする(アクティブとは、選択された状態ようなものです), 1行目|エクセルのシートのアクテイブチャート(グラフ)を画像(xlPicture)としてコピーする, 1行目|Withで「パワーポイントの最後のスライドの図形(ここではグラフ)の」を以下のプラグラムから省略する, 4行目|if文終わりのおまじない( If obj.Type = msoTextBox Then に対応), 5行目|for next構文の終わりのおまじない(For Each obj In pptx.Slides(countSld + 1).Shapes に対応), 6行目|if文終わりのおまじない( ステップ11のIf Worksheets(kazu - c).Name <> "データ" Then に対応), 1行目|for next構文の終わりのおまじない(ステップ10の For c = 0 To kazu - 1 に対応), 1行目|パワーポイントをエクセルファイルと同じフォルダに「pptfile(という変数)」.pptx という名前で新しく保存する, 上記で紹介したプログラムコードをどのように使えば、グラフ作成マクロを使えるようになるのかが分かります。, ぜひ、あなた自身が勉強して、自分で編集してもっといいものを作成できるようになってほしいと思います。, この記事では、グラフの自動作成のマクロについて紹介しました。ここで紹介したマクロを利用すれば、作業の自動化が可能になります。, この動画を見たとき、「もっと○○ができるのでは?」や「ここはなんとかならないのか」と感じる人は少なくないはずです。, 例えば、「他の条件を付け加えたい」や「日付毎に条件を変えたい」といった要望が出るかもしれません。, このような要望を満たすには、マクロを勉強して自力でマクロを編集できるようになる必要があります。, 実際、私も自力でマクロを書けるようになってからは、仕事の生産性が一気に上がりました。, 他の人が30分~1時間かけて行う仕事が、ボタン一つで終わらせることができるようになったのです。その結果、周囲からの信頼も増し、仕事で高い評価を得られるようになりました。, しかし、仕事で使えるマクロを習得したいなら、仕事で使える部分に特化した教材で学ぶことをお勧めします。, なぜなら、ウェブや書籍には仕事に関係しない部分まで提供していることが多いからです。, 例えば、マクロ初心者なのに配列を学ぼうとする人がいます。実は配列なしでも仕事で使えるマクロを書くことは可能です。, しかし、マクロ初心者ほど「全ての知識が必要だ」と考えて、無駄な学習に時間を使ってしまうのです。詳しくは、こちらの記事で紹介しています。, そこで、私がお勧めするのは仕事に直結するマクロ教材です。とくにお勧めするのは、こちらの無料オンライン動画です。, マクロの作り方・考え方から解説しているので、教材をしっかり学べばここで紹介したマクロをゼロから書けるようになります。, マクロ初心者が、仕事に直結したいマクロを学ぶなら、まずはこちらの無料オンライン動画を試すのがいいです。. すみませんです。 なにとぞよろしくお願いいたします。, このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください。, コメントは承認制ですので、反映までしばらくお待ち下さい。(稀にスパムの誤判定にて届かないこともあるようですので、必要な際はお問い合わせからお願い致します。), 非IT系の会社で社内業務アプリ開発したりWeb担してたり。ExcelとかAccessの本を書いてます。, 'オブジェクト名, スライド番号, 上からの位置, 左からの位置, 横幅, 順番(0→最前面 1→最背面) の順で, Dim tgtPath As String: tgtPath = .SelectedItems(1) & ", 'オブジェクトのコピペ(ppt変数, オブジェクト名, 上からの位置, 左からの位置, 横幅 の順で), [ExcelVBA]ExcelグラフをPowerPointへ任意の位置・大きさで貼り付ける, [VBA]PowerPointの指定したスライドへExcelグラフを最背面で貼り付ける, VBA 自分と同じクラスの新規オブジェクトを返すメソッドを作ってコレクションにスマートに代入する – t-hom’s diary, 初心者向けAccessの解説動画2、「Accessの基本操作で作る かんたんなアプリケーション」のお知らせ, 初心者向けAccessの解説動画、「Excelの次に学ぶ、Access入門」のお知らせ, AccessVBA(ADO or DAO)でSQLを書いてレコードを抽出・フィールドを取り出す. left:=0, _ のところで、スライド番号1と指定しているせいか、1ページしか作成されません。。。 .TextFrame.TextRange.Text = “サンプル” Height:=50) _ やりたいことは、1.xlsxの図やグラフを既存のパワポの1ページ目に貼り、2.xlsxの同じ番号の図やグラフを2ページ目に貼るといった要領でして、既存のパワポ(会社名のロゴが入ったスライド1ページ)に、スライドを追加しながら、20ページの1ファイルを作成したいです。 と入れてもうまくいきません。。かなり時間をかけてもがいている状況でして、厚かましいですが、具体的な繰り返し処理のコードを書いていただけると助かります。, adachiさん、ご回答ありがとうございます。思っていたよりも固定部分が多そうですね。その内容ならクラスモジュールを使わなくてもいいと思います。標準モジュールのみで、以下のコードをお試しください。, プロシージャが2つに分割されていますが、実行するのはcopyToPPTのほうです。私の想像で書いているところもあるので、環境に合わせて修正してください。, フォルダの中身をコレクションに格納した順番でスライドを追加していく仕様になっています。そのため必ずしも1.xlsxが1枚目、2.xlsxが2枚目…のようになる保証がありません。たとえばファイル名の連番に抜けがあったらスライド番号はズレます。ファイル名とスライド番号を完全に一致させたいのならば、もうちょっと違う方法になるかと思います。, 一応、どのブックのものかわかるようにコピー元のブック名をテキストボックスへ記述するようにしてあります。不要ならば削除してください。, また、エラー処理までは書いていないので、そのあたりもご随意にカスタマイズしてください。, この度は至れり尽くせりのコードを書いてくださりありがとうございます。完璧でした。コピー元のブックがをテキストボックスへ記されるなど、細やかな配慮がされていて、そして昨日の今日に書いてくださって、本当に頭が下がります。