- ベストアンサー
パワーポイントVBAでグラフのサイズ・位置を統一
- パワーポイントVBAに貼付けた複数のグラフサイズを統一したいと思っています。
- 各スライドにある1つ目のグラフのサイズは統一出来たのですが、2枚目のグラフは何の変化もおきません。
- どこが悪いのか、どなたかご教示頂ければ幸いです。
- みんなの回答 (3)
- 専門家の回答
関連するQ&A
- vba スライドに図形を挿入し文字を入力するには
一番最後のスライドに、図形を挿入するところまでは出来たのですが その図形に文字を表示するにはどうすればいいでしょうか? Sub test() Dim myDocument As Variant i = ActivePresentation.Slides.Count Set myDocument = ActivePresentation.Slides(i) myDocument.Shapes.AddShape Type:=msoShapeRectangle, Left:=50, Top:=50, Width:=100, Height:=50 myDocument.Shapes.Title = "a" myDocument.Shapes.Text = "a" End Sub まではできたのですが、 myDocument.Shapes.Title = "a" myDocument.Shapes.Text = "a" がエラーになります。 別に図形ではなくてもテキストボックスが挿入できればそれでいいのですが、 図形の挿入の仕方しかわかりませんでした。
- ベストアンサー
- PowerPoint(パワーポイント)
- VBA グラフを複数作成する場合
マクロにてグラフを複数作成しようと考えています しかし、ループを使用してグラフを作成すると 1つ以上の場合エラーになってしまい作成できません どのように作成したらよいのでしょうか? 2つ目以降のグラフObjectの名前が重なるからエラーになるとか、そういう部分での問題でしょうか? ------------------------------------- Sub Graph For i = 1 To 2 'source_cnt Call Make_Graph(引数) Next End Sub ------------------------------------- Sub Make_Graph(引数) With ActiveSheet.ChartObjects.Add( _ Left:=Range(***).Left, _ Top:=Range(***).Top, _ Width:=Range(***).Width, _ Height:=Range(***).Height) .Chart.ChartType = xlRadar .Chart.SetSourceData Source:= Range(***), PlotBy:=xlColumns .Chart.Location Where:=xlLocationAsObject, Name:=WorkSheet.Name .Chart.HasLegend = False End With -------------------------------------
- ベストアンサー
- Visual Basic
- Excel VBA でグラフタイトルの位置変更
Excelで作成したグラフのタイトルの、(左の位置や幅は文字数で違ってくるので、)TopとHeightを、VBAを使って変更しようと思っています。 それで、以下のようなコードを書いてみたのですが、 「引数の数が一致しません または不正なプロパティを使用しています」 とのエラーメッセージが出てしまい、実行できません。 ChartTitle.Left などの引数の型はDoubleのようなので、 ' Dim T, L, H, W As Double としてみましたが、変化はありません。 Sub ChangeChartTitlePos() 'Excel VBA でグラフタイトルの位置変更 ' Dim T, L, H, W As Double T = 2: L = 68.4: H = 26.4: W = 220 With ActiveChart.ChartTitle .Top = T .Height = H ' .Left = L ' .Width = W End With End Sub どなたか解決方法をご教授頂ければ幸いです。 また、VBAを使わずにグラフのタイトルのTopとHeightを任意の値に変更する方法がありましたら、その方法も教えて頂ければと存じます。 よろしくお願いします。 追記 ちなみに、プロットエリアの変更は、以下のコードで処理できています。 Sub ChangePlotArea() With ActiveChart.PlotArea .Top = 36.4 .Left = 7 .Height = 190.6 .Width = 274.5 End With End Sub
- ベストアンサー
- その他MS Office製品
- Power Point 2007のマクロについて
はじめまして 業務効率化のためマクロを使うようになった初心者ユーザーです。 Power point2007を用いてすべてのページの画像を一括でサイズ変更と位置変更を行いたいと思っています。 見よう見まねで下記のようなマクロを組んでみたのですが、 タイトルテキストもサイズ変更されてしまうので除外したいのですが、どのようにすればよろしいでしょうか? またこのサイズ変更した画像だけを他のpowerpointファイルに画像1枚1ページずつ自動で貼り付けたいのですが、その方法も教えてほしいです。 なお、他のファイルの既存スライドに貼り付けを行おうとしています。 (画像に関しての説明文書が既に記入済み) お手間を取らせて申し訳ないのですが、迷える子羊に愛の手をお願いいたします。 Public Sub 画像サイズ変更と位置合わせマクロ() Dim i As Long For i = 1 To ActivePresentation.Slides.Count ActiveWindow.View.GotoSlide i ActiveWindow.Selection.SlideRange.Shapes.SelectAll With ActiveWindow.Selection.ShapeRange .Fill.Transparency = 0# .Height = 401# .Width = 687.09 .Left = 20# .Top = 56.62 End With Next End Sub
- ベストアンサー
- その他MS Office製品
- PowerPoint2003でノートを一括削除するVBA
調べたところ Sub test() Dim i As Integer i = ActivePresentation.Slides.Count For i = 1 To i With ActivePresentation.Slides(i).NotesPage .Shapes.Placeholders(2).TextFrame.TextRange = "" End With Next i End Sub というマクロでいけるそうなのですが、幾つか試すと 「実行時エラー '2147188160(80048240)」': Placeholders(不明なメンバー):範囲外の整数2は次の有効な範囲にありません:1から1へ」 というエラーで停まるものがあります。 これの回避方法をご存知の方がいたら教えてください。
- 締切済み
- オフィス系ソフト
- グラフのサイズを揃えたいのでVBAを使っていたのですが、数値軸の最大値
グラフのサイズを揃えたいのでVBAを使っていたのですが、数値軸の最大値などが異なる際は、 プロットエリアでは、幅が揃えられません。というのも、色々試した結果・・・ プロットエリアサイズは、数値軸の文字左側からグラフの右端までの長さを規定しているようなのです。 そこをグラフの箱部分のサイズを揃えることを可能にできないでしょうか? '// データを取得 With ActiveChart chtH = .Parent.Height chtW = .Parent.Width chtPH = .PlotArea.Height chtPW = .PlotArea.Width End With 現在上記のマクロで調整したグラフからサイズを取得し、他のグラフのデータを書き換えるという マクロを組んでいます。参考までにグラフを載せておきます。 この2つのグラフは、このマクロを使って揃えましたが、最大値が異なるため横幅が揃いません。 最大値を揃えると横幅が綺麗に揃います。しかしそのようにするとグラフが見難くなるためできません。 どなたかアドバイスをお願いします。 手動で揃えるには、大変な量なので・・・
- ベストアンサー
- その他MS Office製品
- EXCEL2007 VBA グラフサイズ修正バグ?
下記のようなグラフのサイズ調整するVBAプログラムをEXCEL2007で動かしました。 VBEで実行すると正常に動作します。 シートに図形を設置し、その図形にマクロを登録して実行すると、 グラフが3画面位広がってしまいます。 図形にマクロ登録してグラフ調整を正常に動かすことはできないのでしょうか? ----------------------------------------------------- 'グラフの再調整を行うサブルーチン Sub chartRerange() Dim wb As Workbook Dim strWbName As String Dim myRng1, myRng2, myRng3 As Range Dim myChart As Shape Dim rngTarget As Range '開いているすべてのワークブックを処理対象とする For Each wb In Workbooks strWbName = wb.Name '「月度」が含まれているならば処理 If InStr(strWbName, "月度") <> 0 Then Set myRng1 = wb.Worksheets(2) Set myRng2 = wb.Worksheets(3) For Each myChart In myRng1.Shapes 'グラフならば If (TypeOf myChart.OLEFormat.Object Is ChartObject) Then Select Case myChart.Name Case "chart1" Set rngTarget = Range("B24:AG42") End Select 'グラフを指定したエリアに配置する With myChart .Top = rngTarget.Top .Left = rngTarget.Left .Width = rngTarget.Width .Height = rngTarget.Height End With End If Next End If Next MsgBox "処理完了" Set wb = Nothing Set myRng1 = Nothing Set myRng2 = Nothing Set myChart = Nothing Set rngTarget = Nothing End Sub
- ベストアンサー
- オフィス系ソフト
- Excelでグラフのサイズを揃える
Excel97/2000のVBAを使って、埋め込みグラフのサイズなどを既存のグラフから設定を読み込み、別のグラフを同じサイズに設定するマクロを作成していますが、PlotAreaの位置と大きさだけがうまく動作しなくて困っています。 PlotAreaのWidth,Left,Height,Topの設定が上手くいかないのです。 ChartObjectのサイズより大きくWidthを設定できないとか、軸ラベルが入らないほど小さくは設定できないとかいうことは知っていて、そういう制限がないサイズや位置に設定しようとしても上手くいかない(たまに上手くいくときがあるのですが、どういう時に上手くいくのかはつかめていません) ネットで調べても、PlotAreaのサイズ設定に関しては、難儀している人が多く、上手くいったという話を見つけたことがありません。 PlotAreaの設定を上手くやる方法はあるのでしょうか?具体的なコツやポイントなどありますか?
- 締切済み
- Visual Basic
- エクセルで貼り付けた写真のサイズを減らすためにコピーしましたが、位置がうまく行きません
以前、エクセルにマクロで貼り付けた写真のサイズを減らすために、コピーする方法を教えて頂いたのですが、 下のように書いたコードでは指定した位置にコピーの写真が貼り付きません。 どこがおかしいのでしょうか? sFile = pathname & "\" & filemei & ".jpg" Set myPic = ActiveSheet.Pictures.Insert(sFile) j = ((2 * i) \ 10) * 2 + 2 ←表示させたいセルの行 k = (2 * i) Mod 10 + 2 ←表示させたいセルの列 With myPic.ShapeRange .Left = Cells(j, k).Left .Top = Cells(j, k).Top .LockAspectRatio = msoFalse ' ↓サイズを指定 .Height = Cells(j, k).Height .Width = Cells(j, k).Width End With myPic.Locked = True '上の写真をコピーして貼り付け、下の写真を削除する With myPic .Copy ActiveSheet.Pictures.Paste .Left = Cells(j, k).Left .Top = Cells(j, k).Top ←このセル位置にコピーを貼り付けたいのですが '元の写真を削除 .Delete End With 以上のようなコードです。 コピー元の写真は指定どおりの位置に表示された後削除されますが、 コピーした写真は全て最初のコピー位置に張り付いてしまいます。 画像の扱いをよく理解していませんのでおかしな所も多々あると思いますが よろしくお願いします。
- ベストアンサー
- Visual Basic
- Excelマクロ・グラフエリア・プロットエリアのサイズを変更及び綺麗に並べる
何方か、宜しくお願いします。 質問1 ワークシート上の複数のグラフを選択した状態でマクロを実効して 全てのグラフエリア・プロットエリアを同じサイズに変更するマクロを 教えて下さい。 (下記のコードでは、一つのグラフのプロットエリアのみ変更になります。) Sub グラフサイズ() ActiveSheet.ChartObjects("グラフ 1").Activate ActiveChart.PlotArea.Select 'プロットエリア With Selection .Top = 17 .Left = 27 .Width = 463 .Height = 330 End With Range("A3").Select End Sub (参考:http://oshiete.nikkeibp.co.jp/qa780484.html) 質問2 質問1で修正したグラフを3列、行数は任意でワークシート上に綺麗に並べたい のですが、どのようなコードでしょうか。?(グラフとグラフの間は5ポイント位 隙間を入れたいと思います。グラフ数は20~40位、Excel2000)
- ベストアンサー
- オフィス系ソフト
お礼
早速ご回答頂き有り難うございました! お礼が遅くなり失礼しました汗 再度トライしてみましたが、何故かVBAは働いてくれませんでした。 もしかすると2007を使っているからかもしれませんが、不思議です。 デバッグしてみると、以下の様になりました。 ---------- For i = 2 To cnt With ActivePresentation.Slides(i) With .Shapes(1) .Top = myTop1 .Left = myLft1 .Height = myHgt1 .Width = myWdt1 End With With .Shapes(2)←←←←←←←←←←エラー箇所 .Top = myTop2 .Left = myLft2 .Height = myHgt2 .Width = myWdt2 エラーメッセージ: Shapes(不明なメンバー):範囲外の整数2は次の有効な範囲にありません:1から1へ ---------- いずれにせよご回答頂き有り難うございました! 綺麗なコードもご紹介頂き、大変勉強になります。 お手数をおかけしました。