VBA初心者です。
ワークシート上にグラフを作成した後(例えば「グラフ1」とします)、B列の幅を作成したグラフの幅と同じに設定するには、どのように記述すればよいのしょうか?
Columns("B").ColumnWidth = ActiveSheet.Shapes("グラフ1").Width
Columns("B").Width = ActiveSheet.Shapes("グラフ1").Width
Columns("B").ColumnWidth = ActiveSheet.Shapes("グラフ1").ColumnWidth
どれもうまくいきませんでした。よろしくお願いします。
No.2ベストアンサー
- 回答日時:
こんにちは。
Wendy02です。>ColumnWidthのヘルプによると
>解説
>・
>とのことです。
その書き方は、かなり手厳しく感じました。ヘルプで調べてから回答を書きなさい、ということですね。私の書き方がまずかったようですね。失礼しました。
ただ、そのヘルプの内容は、若干、意味が曖昧です。仮に等幅フォントであっても、本当に、1文字の積み重ねが、列幅になるとお思いになっているのでしたら、それは違います。セル幅は、PIXEL値(Long型)に丸められて、それを逆算して、例えば「8.38」 という数字が出てきているのであって、決して、1文字のフォントの長さが、列幅にそのまま反映しているわけではありません。ロジックでいうと、「AはBによって作られているが、BはAには等しからず」ということになりますね。
変換率の出し方は、以下のようになりますが、Constの定数はやめ、ALPHAを変数にして、以下のようにすればよいはずです。
Dim Alpha As Double
Alpha = ActiveSheet.Cells(256).Width / ActiveSheet.StandardWidth
しょせん、理論値では不可能(だと思う)ですから、影響のないセルに対して、実測値を元に、変換値を出したにすぎませんが。
これで、問題なくできるはずです。
>その書き方は、かなり手厳しく感じました。ヘルプで調べてから回答を書きなさい、ということですね。
本当に、本当に、本当にすみませんでした。ただ、その様なつもりで書いたのではないことはご理解下さい。回答を頂いた後、自分なりに調べて、単位の意味が分かったので、報告のつもりで書きました。こちらは助けてもらっている立場ですので、丁寧に回答して頂きとても感謝しています。思慮の足りない書き方をして、本当に申し訳ありませんでした。
アドバイスの通り記述して、目的とする結果が得られることを確認しました。本当にありがとうございました。
No.1
- 回答日時:
こんばんは。
コードのロジックとしては、間違っていませんね。先ほどからやってみましたが、どうも単位が違うようなのです。その単位が何かわかりませんでした。それで、一応、実測値として以下に入れました。グラフオブジェクトを、セル幅に合わせるほうは入れられるのですが、グラフオブジェクトの幅をセル幅に合わせるほうは出来ないようですね。うまくいかないようでしたら、そのALPHAの数値を変えてみてください。
Sub GraphLocating()
Dim myColumnWidth As Double
'この定数は、実測値
Const ALPHA As Double = 6
Application.ScreenUpdating = False
With ActiveSheet.ChartObjects(1)
ActiveSheet.Columns("B").ColumnWidth = .Width / ALPHA
.Left = ActiveSheet.Range("B5").Left
.Width = ActiveSheet.Range("B5").Width
End With
Application.ScreenUpdating = True
End Sub
お返事ありがとうございます。ColumnWidthのヘルプによると
解説
列幅の単位は、標準スタイルの 1 文字分の幅に相当します。プロポーショナル フォントでは、数字の 0 の幅が列幅の単位になります。列幅をポイント単位で取得するには、Width プロパティを使ってください。
とのことです。数字の0の幅(ALPHA)を取得する方法は、分かりますでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのイベントVBAを複数のシートで動かしたい 1 2022/12/07 16:55
- Excel(エクセル) Excel 散布図グラフ 外れ値 セル番地参照方法 4 2022/04/19 18:56
- Excel(エクセル) エクセルの大きなシートでグラフを見つける 4 2022/07/28 10:07
- Excel(エクセル) EXCELのグラフを画像(JPG形式)で保存、通常実行がうまく行かない。ステップインはうまく行く 3 2022/08/30 12:06
- Excel(エクセル) エクセル VBAでBook モジュールのプロシージァ(コード)に除外シートを設定したい 1 2023/01/11 15:53
- Excel(エクセル) Excel グラフのプロットエリアについて 2 2022/08/26 18:12
- Excel(エクセル) Excelグラフについて 1 2022/06/16 16:06
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- Visual Basic(VBA) 【VBA】もし、値が0だったら左のセルと合わせて削除したい 3 2023/04/20 10:12
- 物理学 【 物基 波 y-tグラフからy-xグラフ 】 問題 写真の図は,x軸を速さ2.0m/sで正の 向き 2 2022/07/22 14:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルにおける、グラフの指...
-
エクセルでグラフタイトルが折...
-
たくさん作った同じ設定のグラ...
-
エクセルグラフの一括設定。
-
パワーポイントに貼り付けたエ...
-
EXCEL・複数ある円グラフの円の...
-
エクセルのグラフの一部拡大
-
エクセル(Excel)の目盛りの一...
-
またSma4
-
イラレのグラフがグループ解除...
-
PowerPointのグラフの色が変わる
-
エクセル作業中・・「参照が正...
-
~エクセル~円グラフのみを抽...
-
EXCELでの棒グラフの太さについて
-
excel マクロ記録→実行でグラ...
-
EXCELのグラフを画像(JPG形式)...
-
Excelのグラフを一太郎に貼ると...
-
一太郎にエクセルからコピーし...
-
エクセルで散布図をつくったとき
-
エクセルで作業ごとの時間をグ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでグラフタイトルが折...
-
たくさん作った同じ設定のグラ...
-
エクセルにおける、グラフの指...
-
パワーポイントに貼り付けたエ...
-
~エクセル~円グラフのみを抽...
-
エクセルグラフの一括設定。
-
EXCEL・複数ある円グラフの円の...
-
イラレのグラフがグループ解除...
-
エクセルのグラフの一部拡大
-
エクセル(Excel)の目盛りの一...
-
エクセルグラフの数値軸(Y)の...
-
エクセル作業中・・「参照が正...
-
エクセルで作業ごとの時間をグ...
-
エクセルのグラフデータのリン...
-
エクセル:ぴったり重なった後...
-
パワーポイントで時計を表示で...
-
EXCELでの棒グラフの太さについて
-
Excel:とびとびの日付のデータ...
-
エクセルのグラフが作成した通...
-
Excelで作ったグラフをIllustra...
おすすめ情報