マクロで図形の選択解除方法とセルの選択方法

このQ&Aのポイント
  • Excelを使用して図形の選択解除方法とセルの選択方法を教えてください。
  • マクロを使用して図形の選択状態を解除し、指定のセルを選択する方法を教えてください。
  • Excelのマクロを使用して、図形の選択を解除し、特定のセルを選択する方法を教えてください。
回答を見る
  • ベストアンサー

マクロで選択した図形の選択状態を解除するには

Excel97,Windows98SEを使用しています。 シート上に作成したコントロールツールのコマンドボタンをクリックすると、 シート上の全ての図形を選択して、順序を最背面にするというマクロを作成したのですが、 選択した図形のハンドルが消えません。 図形選択を解除して、B26セルを選択したいのですが、どうしたらよいでしょうか? Private Sub CButton_gyou_Click() ActiveSheet.DrawingObjects.Select Selection.ShapeRange.ZOrder msoSendToBack Range("B26").Select End Sub ご存知の方、どうぞよろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • wildcard
  • ベストアンサー率54% (54/100)
回答No.1

コントロールツールのコマンドボタンをクリックすると、そのクリックしたコマンドボタンにフォーカスが移ってしまうのが原因かと… これではどうでしょうか? Private Sub CButton_gyou_Click() Range("B26").Select ActiveSheet.DrawingObjects.Select Selection.ShapeRange.ZOrder msoSendToBack Range("B26").Select End Sub

takahiro_
質問者

お礼

早速のご回答ありがとうございます! 上手くできました! フォーカスが移動するなんて考えつきませんでした…。 またわからないことがありましたらよろしくお願いいたします。

関連するQ&A

  • 図形 Selectionが省略できない VBA

    「タイトル」という名の図形はシート上に存在するのですが、 Sub a() ActiveSheet.Shapes.Range(Array("タイトル")).ShapeRange.Height = 110 End Sub Sub b() ActiveSheet.Shapes.Range(Array("タイトル")).Select Selection.ShapeRange.Height = 110 End Sub aだとエラーになりますが、 bだと正常に動きます。 SelectやSelectionは省略できるものだと思ってるのですが なぜaだとエラーになるのでしょうか? 一度図形をアクティブにする動作が必要なのですか?

  • エクセル マクロ picture

    教えてもらいながら以下のような画像貼り付けマクロを組んだのですが,以下の点に引っかかり前進することができません. 教えて頂きたいと思い投稿しました. 躓いている点  シート内でボタンを利用して貼り付け及び削除をしているのですが,エクセルシート内でコピペするたびに「Selection.Name」と貼り付け先を修正しています. →これをコピペしても修正をしなくてもよいマクロはないでしょうか? 自作作成マクロ Sub 写真貼付1_Click() Dim AA As String, BB As String, CC As String 10 AA = InputBox("参照先を指定して下さい。例:D:\Photo001.jpg", "場所指定", AA) If (AA = "") Then AA = Application.GetOpenFilename(Title:="写真ファイルの場所はどこですか?") GoTo 10 End If ActiveSheet.Unprotect Range("m29").Select ActiveSheet.Pictures.Insert(AA).Select Selection.Name = "写真1" Selection.ShapeRange.LockAspectRatio = msoTrue Selection.ShapeRange.Height = 310 Selection.ShapeRange.Width = 310# Selection.ShapeRange.IncrementLeft 1 Selection.ShapeRange.IncrementTop 1 ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _ , AllowFormattingCells:=True End Sub -------------------------------------------------- Sub 写真削除1_Click() ActiveSheet.Shapes("写真1").Select Selection.Delete ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _ , AllowFormattingCells:=True End Sub ところどころ端折ってますが,以上のようなマクロです. よろしくお願いします.

  • エクセル・マクロでグラフを最背面に移動させたい

    エクセルのグラフを3つピッタリと重ねて表示しています 後ろのグラフを選択する時「最背面に移動」させてますが これをマクロにしたいです とりあえずマクロの記録でしてみたら Sub Macro1() ActiveSheet.ChartObjects("グラフ 7").Activate ActiveChart.ChartArea.Select Selection.ShapeRange.ZOrder msoSendToBack ActiveWindow.Visible = False Windows("Book1.xls").Activate Range("A1").Select ActiveSheet.ChartObjects("グラフ 5").Activate ActiveChart.ChartArea.Select Selection.ShapeRange.ZOrder msoSendToBack ActiveWindow.Visible = False Windows("Book1.xls").Activate Range("A1").Select ActiveSheet.ChartObjects("グラフ 2").Activate ActiveChart.ChartArea.Select Selection.ShapeRange.ZOrder msoSendToBack ActiveWindow.Visible = False Windows("Book1.xls").Activate Range("A1").Select End Sub と出来たのですが、マクロの実行そしてみると3列目の Selection.ShapeRange.ZOrder msoSendToBack の所で、 「実行時エラー438 オブジェクトはこのプロパティまたはメソッドをサポートしてません」 となってしまいます、どうすればよいのでしょう ボタンを押したら最前面のグラフが最背面に移動するようにしたいのですが難しいのでしょうか

  • エクセルマクロでオブジェクトを選択する方法

    エクセル(2002)を使っています。マクロの記録機能を使って円を描くマクロを作成しました。 Sub Maru(xpos, ypos, hankei) ActiveSheet.Shapes.AddShape(msoShapeOval, xpos, ypos, hankei, hankei).Select Selection.ShapeRange.Fill.Visible = msoFalse Selection.ShapeRange.Fill.Solid Selection.ShapeRange.Fill.Transparency = 0# Selection.ShapeRange.Line.Weight = 0.75 Selection.ShapeRange.Line.DashStyle = msoLineSolid Selection.ShapeRange.Line.Style = msoLineSingle Selection.ShapeRange.Line.Transparency = 0# Selection.ShapeRange.Line.Visible = msoTrue Selection.ShapeRange.Line.ForeColor.SchemeColor = 64 Selection.ShapeRange.Line.BackColor.RGB = RGB(255, 255, 255) End Sub 次にこの円を削除したいと思い、同じようにマクロの記録機能を使ったところ、 Sub Macro3() ActiveSheet.Shapes("Oval 64").Select Selection.Delete End Sub となりました。"Oval 64"はオブジェクトの名前のようですが、名前がわかっていないオブジェクト(但し上記マクロで書いたので場所はわかっている)を選択するにはどうしたらいいでしょうか。

  • エクセル(マクロ)での「jpeg画像の選択」について

    あるシート上に、「複数のjpeg画像」があり、 マクロを使って、それらを「全て選択」し、 一括で横方向へ平行移動したい、と思っています。 そこでなのですが、 「jpeg画像のみ」を選択するためには、 マクロでは、どのような記述をすればよいのでしょうか…。 先ほど以下のように記述した所、 シート上にある、マクロを登録している「ボタン」まで選択されてしまい、 「jpeg画像のみ」の選択が、できませんでした…。 ActiveSheet.DrawingObjects.Select Selection.ShapeRange.IncrementLeft 240 何か良い方法がありましたら、 アドバイスをお願い致します。m(_ _)m

  • 図形をコピーするマクロ(エクセル)

    以下のマクロで、シート上にある図形(四角形 1)を、選択状態にあるセルの上に移動させることができます。 Sub test() Dim seru As Range On Error GoTo Errorline Set seru = Range(ActiveCell.Address) ActiveSheet.Shapes("四角形 1").Select With Selection.ShapeRange .Left = seru.Left .Top = seru.Top End With Errorline: End Sub 移動ではなくコピーにするには、どう変えればいいでしょうか?

  • エクセル VBA 画像操作

    VBAについて質問です。 画像を何枚かを重ねて、シート上に置いてあります。 VLOOKUPにて、画像番号を獲得して、その番号の画像を最上面へ移動させたいのですが ActiveSheet.Shapes.Range(Array("Picture 201")).Select ActiveWindow.SmallScroll ToRight:=-342 Selection.ShapeRange.ZOrder msoBringToFront ActiveSheet.Shapes.Range(Array("Picture 221")).Select ActiveWindow.SmallScroll ToRight:=-342 Selection.ShapeRange.ZOrder msoBringToFront ActiveSheet.Shapes.Range(Array("Picture 215")).Select ActiveWindow.SmallScroll ToRight:=-342 Selection.ShapeRange.ZOrder msoBringToFront ("Picture 215")の部分を、セルの値で変更したいのですが どうか、お力お貸しください。 よろしくお願いします。

  • エクセルの図形移動で困っています。

    エクセルの図形移動で困っています。 シート2にある図形をシート1にマクロを使って移動(コピー&貼り付け)をしようとしています。 マクロの記録でやった所、以下のような感じになりました。 Sub Macro4() ' ' Macro4 Macro ' ' Sheets("sheet2").Select Selection.Copy Sheets("sheet1").Select Range("N16").Select ActiveSheet.Paste End Sub しかし、なぜか3回程つかうとシート1に貼り付けされなくなります。 原因はシート2の図形をコピーする時に選択されるところがないからではないか?と思い 色々ネットで調べてみたのですが、まだまだ結論が出ていない状態です。 皆様のお力を貸して頂ければと思います。 Sub Macro4() ' ' Macro4 Macro ' ' Sheets("sheet2").Select (たぶんここに"図形1)とか入るのでは??と思っています Selection.Copy Sheets("sheet1").Select Range("N16").Select ActiveSheet.Paste End Sub

  • エクセル マクロ 選択中の複数の図形名を表示するには?

    エクセル マクロ 選択中の複数の図形名を表示するには? お世話になります。 図形を選択(単一・複数の時あり)している状態で ボタンを押すと図形の名前がメッセージボックスに表示される といった事をしたいのですが、 最近マクロを始めたばかりでどういうコードを書けばいいのかわかりません 一応↓の様に 単一選択している図形の名前を出すまでは何とか自力で出来ましたが、 Sub 図形名の表示_Click() MsgBox (Selection.ShapeRange.Name) End Sub 複数選択した場合の出す方法がわかりません。 どのようにコードを書けばいいのかご教授ください。

  • Excelのマクロを使用してオートシェイプ図形の色を変えたいのです。

    Excelのマクロを使用してオートシェイプ図形の色を変えたいのです。 オートシェイプ図形を50個ならべて、マウスでクリックしてものは色が変わるようにしたいと思います。 マクロ記録をすると以下のようになりました。 Sub Macro1() ActiveSheet.Shapes("AutoShape 1").Select Selection.ShapeRange.Fill.ForeColor.SchemeColor = 45 Selection.ShapeRange.Fill.Visible = msoTrue Selection.ShapeRange.Fill.Solid End Sub このプログラムを50個書くわけにはいかないのですが、プログラムで処理するのに問題点が2つ出てきました。 ・オートシェイプ図形の名前が"AutoShape 1"となっていますが、これを変更したいのですが、書式設定にはありませんでした。変更するにはどうすればよいのでしょう? ・クリックしたオートシェイプ図形がどれであるかを返す関数がないと、どの図形がクリックされたかわからないのですが、これを返す関数はあるのでしょうか? よろしくお願いします。

専門家に質問してみよう