y sakuda様
yama_972です
早速のご返事ありがとうございます。
問題のマクロボタンの中身を以下に示します。
*****************************************************************************************************
Private Sub CommandButton2_Click()
ActiveSheet.ChartObjects("グラフ 6").Activate
'
' ActiveChart.Shapes.AddTextbox(msoTextOrientationHorizontal, 40, 25, 50, 25)
Set sh = ActiveChart.Shapes.AddTextbox(msoTextOrientationHorizontal, 40, 25, 50, 25)
' MsgBox sh.Name
sh.Select
Selection.ShapeRange.Fill.Visible = msoFalse
Selection.ShapeRange.Line.Visible = msoFalse
Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "AAA"
' ActiveChart.Shapes.AddTextbox(msoTextOrientationHorizontal, 80, 25, 190, 25).Select
Set sh = ActiveChart.Shapes.AddTextbox(msoTextOrientationHorizontal, 80, 25, 190, 25)
' MsgBox sh.Name
sh.Select
Selection.Formula = "=sheet1!$g$13"
' ActiveChart.Shapes.AddTextbox(msoTextOrientationHorizontal, 400, 25, 30, 25).Select
Set sh = ActiveChart.Shapes.AddTextbox(msoTextOrientationHorizontal, 400, 25, 30, 25)
' MsgBox sh.Name
sh.Select
Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "b="
' ActiveChart.Shapes.AddTextbox(msoTextOrientationHorizontal, 415, 25, 35, 25).Select
Set sh = ActiveChart.Shapes.AddTextbox(msoTextOrientationHorizontal, 415, 25, 35, 25)
' MsgBox sh.Name
sh.Select
Selection.Formula = "=sheet1!$f$19"
' ActiveChart.Shapes.AddTextbox(msoTextOrientationHorizontal, 445, 25, 30, 25).Select
Set sh = ActiveChart.Shapes.AddTextbox(msoTextOrientationHorizontal, 445, 25, 30, 25)
' MsgBox sh.Name
sh.Select
Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "a="
' ActiveChart.Shapes.AddTextbox(msoTextOrientationHorizontal, 460, 25, 50, 25).Select
Set sh = ActiveChart.Shapes.AddTextbox(msoTextOrientationHorizontal, 460, 25, 50, 25)
' MsgBox sh.Name
sh.Select
Selection.Formula = "=sheet1!$f$20"
End Sub
********************************************************************************************************
” ' ” 行はデバッグの時に使用したものです。
このCommandButton2をグラフの適当なエリアに貼り付けてあります。
仕様条件入力セルに条件入力後(三箇所)、マクロボタンを押すと、グラフエリアの上部に上記プログラムで
配置された位置にテキストボックスが作成され、それぞれ下記の内容が入ります。
"AAA" "G13の中身" "b=" "F19の中身" "a=" "F20の中身"
このテキストボックスにカーソルをあわせるとなぜかテキストボックスの番号は下記となっています。
左から順に 1 10 13 20 21 22
なおこれは一度該当のプログラムを終了させて再読み込みした時です。
この状態で下記をやった結果を示します。
1.条件入力後マクロボタンを押すとテキストボックスの番号は下記に変わります。
左から順に 29 31 33 34 35 36
2.上記1の後に条件入力後マクロボタンを押さないでもテキストボックスの内容は変わっていました。
その時のテキストボックスの番号は上記1のままでした。
そこで質問ですが
Q1.最初にマクロボタンを押した時に、テキストボックスの番号が1 2 3 4 5 6とならないのはなぜですか?
ただこのグラフにはタイトル、凡例、XY軸ラベル、XY軸目盛を使用しています。
これが影響するのでしょうか?
Q2.影響ないとすれば上記プログラムにある
Set sh = ActiveChart.Shapes.AddTextbox(msoTextOrientationHorizontal, 40, 25, 50, 25)
このコマンドで*****AddTextbox*****
とあるのでAddTextboxのAddの機能で新しくTextboxが追加されるのでしょうか?
Q3.そうであれば、AddのつかないTextbox作成コマンドはないのでしょうか?
Q4.また上記テキストボックス(1~36)の空き番号がどこで使われているのか調べる方法はあるのでしょうか?
Q5."名前は変更可能ですので、追加後自分で変更することは可能です"
とありますが、例えばQ2の中のコマンド"*************,40, 25, 50, 25)"で指定された"40, 25, 50, 25"のテキス
トボックスに名前をつけられるということですか?
この名前を仮に "1111" とします。
Q6.この"1111"という名前のテキストボックスを指定して、仕様条件入力セルの内容を入れるようにできれば、
今回のような仕様条件変更してマクロボタンをおしても、名前がインクリメントされることはないので問題が
出ないと思いますが、このようにできるのでしょうか?
Q7.最初の操作1、2で2についてですが
マクロボタンを押さないでも、仕様条件入力セル変更が変更値を入力してエンターキーを押した時にテキス
トボックスの番号は変わらずに内容は変更されています。
これは私の作ったプログラムが、1回コマンドボタンを押して実施すればいつも実施されるようになってい
るのでしょうか?
自分で作って情けないですが、実はこのプログラムはマクロの記録で作ったものです。従って手動操作で
やったことをプログラム化したものです。これに皆様方のご助言を入れたものです。
Q7.一番良いのは、マクロボタンにプログラムを入れるのではなく、該当グラフ及び仕様条件入力セルの入った
シートに入れることができれば、このシートを開けばマクロボタンは不要と思います。
但しテキストボックスの問題はのこりますが、、、、
長々と書きましたがよろしくお願いいたします。