• ベストアンサー

エクセルVBAでShapeRangeについて

すみません、教えてください。 以下のマクロは正常に動きます。 Sub TEST() With ActiveSheet For Each s In .Shapes If s.AutoShapeType = msoShape5pointStar Then s.Delete Next .Cells.Interior.ColorIndex = 1 Set AA = .Shapes.AddShape(msoShape5pointStar, 55, 22, 25#, 25#) AA.Fill.Visible = msoTrue AA.Fill.Solid AA.Fill.ForeColor.SchemeColor = 13 AA.Fill.Transparency = 0# AA.line.Weight = 0.75 AA.line.DashStyle = msoLineSolid AA.line.Style = msoLineSingle AA.line.Transparency = 0# AA.line.Visible = msoTrue AA.line.ForeColor.SchemeColor = 64 ' AA.Copy '(1) ' .Paste '(1) ' Set AB = Selection '(1) ' .Range("A1").Select'(1) Set AB = AA.Duplicate '(2) AB.Top = 44 AB.Left = 110 ' AB.ShapeRange.Fill.ForeColor.SchemeColor = 10'(1)の2 AB.Fill.ForeColor.SchemeColor = 10 '(2)の2 End With End Sub ところが、 Set AB = AA.Duplicate '(2)の部分を、コメントアウトしている '(1)の記述に変えると、 AB.Fill.ForeColor.SchemeColor = 10 '(2)の2 の部分も ' AB.ShapeRange.Fill.ForeColor.SchemeColor = 10'(1)の2 に変えないとエラーになります。 ' AA.Copy '(1) ' .Paste '(1) ' Set AB = Selection '(1) も Set AB = AA.Duplicate '(2) も、同じことのように思えるのですが、この違いで、ShapeRangeというのを入れたり消したりしなければならないのはどうしてでしょうか? エクセルは2000です。

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

  • ベストアンサー
  • pauNed
  • ベストアンサー率74% (129/173)
回答No.5

要は、 変数への格納の仕方、 Objectの指定の仕方が違う、 という話です。 Sub try4()   Dim A As Object   Dim B As Object   With ActiveSheet     With .Shapes.AddShape(msoShape5pointStar, 100, 100, 100, 100)       .Duplicate.Select       Set A = Selection 'Duplicateしたもの       .Copy     End With     .Paste     Set B = .Shapes(.Shapes.Count) 'Copyしたもの   End With   MsgBox "A: " & TypeName(A) & vbLf & "B: " & TypeName(B)   Stop      Set A = Nothing   Set B = Nothing End Sub Sub try5()   Dim A As Object      With ActiveSheet     .Shapes.AddShape msoShape5pointStar, 100, 100, 100, 100     Set A = .DrawingObjects(.DrawingObjects.Count)     MsgBox A.ShapeRange.Name   End With   Stop      Set A = Nothing End Sub

merlionXX
質問者

お礼

> 変数への格納の仕方、 > Objectの指定の仕方が違う、 なるほど、同じ物でも Set A = .DrawingObjects(.DrawingObjects.Count) とすれば型はRectangleだし、 Set A = .Shapes(.Shapes.Count) とすれば型はShapeになりますね。 有難うございます。

その他の回答 (5)

回答No.6

今日は暇なのでまた登場。 今回はこれで終わりにしまする。(^^;;; >う~っ、結果としてそうなったShapeの下にShapeRangeが無く、Rectangleの下にはまずShapeRangeがきて、その下にFillがくるという構造になっているということなんでしょうね。わかったようでわからないような・・・・ VBAのプロになるのであればなんですが、 こんな小難しいことは考えなくてもいいのではないのですか? 何回も言ってるように ●選択された図形●を扱う場合は、ShapeRangeコレクションを使う、 と覚えておけばいいと思いますよ。 Selection.ShapeRange.Fill。。。。。。 なお、当方の回答は、あくまでも 質問のタイトルにある、「エクセルVBAでShapeRangeについて」です。   で、今回の質問については当方の回答は終了ということで。  

merlionXX
質問者

お礼

大師さま、何度もお手間を取らせすみませんでした。 ●選択された図形●を扱う場合は、Rectangle型になっているのでShapeRangeコレクションを使う。 選択しなくともRectangle型として変数に入れたオブジェクトもShapeRangeコレクションを使うということですね。 覚えます、有難うございました。

回答No.4

またまた登場、、、(^^;;; >わたしも選択しているか否かのせいではないかと思いました。 >それで .Range("A1").Select'(1) をわざと書き加えたのです。 >これでA1セルが選択されて図形の選択が解除されていますよね? Range("A1").Selectしたら図形選択は当然解除されますが、コードをよく見てください。 1。 AA.Copy 2。 .Paste 3。 Set AB = Selection 4。 .Range("A1").Select 2でコピーされた図形は選択された状態になり、 3でその選択された図形をABへセットしてますから この3で、ShapeRangeコレクションにAddされるわけです その後、4でセル選択して図形選択を解除しても それは画面上で解除されただけで、ShapeRangeには選択された図形として入っていることになりませんか? なりますよね。 4のセル選択は意味がないことになります。 なので、  >選択か否かではなくTypeNameがShapeかRectangleかの違いなのではないでしょうか? これは、先ず、選択したか否かがあり、 結果としてShapeかRectangleがあるわけですから 結論は選択したか否か、ということになるのではありませんか?   そして、 >もっともDuplicateすればShapeのままで、CopyしてPasteしたらRectangleに変わるというのもなぜかわからないのですが・・・・ これについては、なぜか? という問いには誰も答えられないと思われます。 強いていうなら、Copyしたらではなくて、Selectionオブジェクトの仕様としか言いようがないですね。 ということで、今回の問題は、選択したか否か、ということです。 これでもう、ShapeRangeコレクションの使い方は分かりましたね?(^^;;; 以上です。

merlionXX
質問者

お礼

> 結果としてShapeかRectangleがあるわけですから > 結論は選択したか否か、ということになるのではありませんか? ここまではやっとわかりました。 > これでもう、ShapeRangeコレクションの使い方は分かりましたね?(^^;;; う~っ、結果としてそうなったShapeの下にShapeRangeが無く、Rectangleの下にはまずShapeRangeがきて、その下にFillがくるという構造になっているということなんでしょうね。わかったようでわからないような・・・・ φ( ̄_ ̄;) でも、そのように覚えておきます。

  • pauNed
  • ベストアンサー率74% (129/173)
回答No.3

ちょっとごちゃごちゃ書きすぎて、解り難かったようです。ごめんなさい。 『Copyで作成された』から『Typeが違う』のではありません。 Sub try1()だけ実行してください。 Selectせずに変数に格納したら型がShapeであり、 SelectしてSelectionを変数に格納したら型がRectangleになります。 >Stop時、VBEのローカルウィンドウを表示し、変数A,Bに格納されたObjectの型を確認してください。 これは、確認してみられましたか? さらに、A,Bそれぞれを展開してみてください。(左の田をクリック) Objectは階層構造になっています。 Aの直下にFillプロパティがあります。 Bにはありません。 ただ、Bの直下にShapeRangeプロパティがあります。 これは ShapeRange コレクションを返します。 このShapeRangeをさらに展開してください。最後に Item1 があります。 これがAと同じものです。 >AB.ShapeRange.Fill.ForeColor.SchemeColor = 10 は AB.ShapeRange.Item(1).Fill.ForeColor.SchemeColor = 10 と同じ事をしています。 >Selectメソッドで選択したObjectと、Selectionの内容は異なる事があります。 Shapeを選択しても、SelectionはShapeではない、という事です。

merlionXX
質問者

お礼

> Selectせずに変数に格納したら型がShapeであり、 > SelectしてSelectionを変数に格納したら型がRectangleになります。 CopyとDuplucateの違いではなかったのですね。わかりました。 > さらに、A,Bそれぞれを展開してみてください。(左の田をクリック) こういうところがあるとは存じませんでした。 初体験です。 > Objectは階層構造になっています。 > Aの直下にFillプロパティがあります。 > Bにはありません。 なるほど、こういう違いがあるんですねえ。 有難うございました。

回答No.2

エキスパートさん、こんにちは。 寒くなりましたがいかがお過ごしでしょうか。 と、余計なご挨拶は置いといて。。。 質問の件はヘルプをみてもなかなか分かりづらいところがありますが、 簡単に言うと、その図形が選択されてるかどうか、です。 選択された図形はShapeRangeコレクションの中に入るので その図形を扱うときはShapeRangeを使わないといけないということです。 但し、これは、今回のような【書式プロパティ】についてですが。 -------------------------------------------------  AA.Copy '(1)  .Paste '(1)  Set AB = Selection '(1) このABは【選択された状態】ですから、ShapeRangeでないとダメ ---------------------------------------------------------    Set AB = AA.Duplicate このABは、【選択されてない状態】であり、    Set AB = Activesheet.Shapes(2) と同じなので、ShapeRangeは使わないでもよい ------------------------------------------------------ それから、 >AB.ShapeRange.Fill.ForeColor.SchemeColor = 10'(1)の2 >AB.Fill.ForeColor.SchemeColor = 10 '(2)の2 ActiveSheet.Shapes(AB.Name).Fill.ForeColor.SchemeColor = 10 とすれば問題はおこりませんが、コードがちょと綺麗じゃない?! 【結論】 選択された図形の書式プロパティを扱うときは、ShapeRangeコレクションを使う と単純に覚える。   以上です。

merlionXX
質問者

お礼

大師さま、お久しゅうございます。 わたしも選択しているか否かのせいではないかと思いました。 それで .Range("A1").Select'(1) をわざと書き加えたのです。 これでA1セルが選択されて図形の選択が解除されていますよね? ですから、選択か否かではなくTypeNameがShapeかRectangleかの違いなのではないでしょうか?もっともDuplicateすればShapeのままで、CopyしてPasteしたらRectangleに変わるというのもなぜかわからないのですが・・・・。

  • pauNed
  • ベストアンサー率74% (129/173)
回答No.1

こんにちは。 Selectメソッドで選択したObjectと、Selectionの内容は異なる事があります。 Sub try1()   Dim A   Dim B      Set A = ActiveSheet.Shapes.AddShape(msoShape5pointStar, 100, 100, 100, 100)   A.Select   Set B = Selection   MsgBox "A: " & TypeName(A) & vbLf & "B: " & TypeName(B)   Stop      Set A = Nothing   Set B = Nothing End Sub Stop時、VBEのローカルウィンドウを表示し、変数A,Bに格納されたObjectの型を確認してください。 また、Selectionではなくとも、隠しObjectを使う事でも再現します。 (隠しObject...95以前のバージョンとの互換性を保持するためのもの) Sub try2()   Dim A   Dim B      Set A = ActiveSheet.Shapes.AddShape(msoShapeRectangle, 100, 100, 100, 100)   Set B = ActiveSheet.Rectangles.Add(200, 200, 100, 100)   MsgBox "A: " & TypeName(A) & vbLf & "B: " & TypeName(B)   Stop      Set A = Nothing   Set B = Nothing End Sub 変数にVariant型を用いている事も要因のひとつです。 個人的には、きちんと変数宣言し明示して、Objectの型を意識したほうが良いと思います。 ただ、Selectionを用いると、型違いエラーが発生する事もあります。 Sub try3()   Dim A As Object   Dim B As Rectangle   Dim C As Shape      Set A = ActiveSheet.Shapes.AddShape(msoShapeRectangle, 100, 100, 100, 100)   A.Select   Set B = Selection   On Error Resume Next   Set C = Selection 'エラー   Stop   Set C = A   Stop   Set A = Nothing   Set B = Nothing   Set C = Nothing End Sub Selection のような状況依存しないといけない時には..As Object を使う事もあります。 (上記例の Dim B As Rectangle...などは、あまり使わないとは思います)

merlionXX
質問者

お礼

有難うございます。 最初に生成された星型AAはTypeNameがShapeでした。 Duplicateで複製した星型ABは、オリジナルと同じくTypeNameがShapeでしたが、Copyで作成された星型ABはTypeNameがRectangleと、Typeが違うんですね! ここまでは理解できました。 では、ABが"Shape"であれば AB.Fill.ForeColor.SchemeColor = 10 でOKなのに ABが"Rectangle"なら AB.ShapeRange.Fill.ForeColor.SchemeColor = 10 と、"ShapeRange"というのを入れなければならないのはどうしてなのでしょうか? (実はShapeRangeというのが何なのか良くわかってないのです。)

関連するQ&A

  • エクセルVBAでShapeRange.Fill.Solidって?

    オートシェープの書式設定で、 Selection.ShapeRange.Fill.Visible = msoTrue Selection.ShapeRange.Fill.Solid Selection.ShapeRange.Fill.ForeColor.SchemeColor = 55 Selection.ShapeRange.Fill.Transparency = 0.1 等、いろいろありますが、 このうちShapeRange.Fill.Solidとはどこの部分のどういう設定なのでしょうか?ここだけは意味が分かりません。

  • エクセルVBAのWith~End With構文

    Win2000エクセル2000です。 下記のMacro11はTEST11のようにWith~End Withでくくれると思うのですがエラーになります。 どこがおかしいのでしょうか? Sub Macro11() ActiveSheet.Shapes.AddShape(msoShapeSun, 450, 150, 120, 120).Select Selection.ShapeRange.Line.Weight = 0.75 Selection.ShapeRange.Line.ForeColor.SchemeColor = 64 Selection.ShapeRange.Fill.ForeColor.SchemeColor = 10 Selection.ShapeRange.Fill.OneColorGradient msoGradientFromCorner, 1, 0.59 Selection.ShapeRange.Adjustments.Item(1) = 0.3016 Selection.ShapeRange.ThreeD.SetThreeDFormat msoThreeD7 Selection.ShapeRange.ThreeD.PresetMaterial = msoMaterialMetal Selection.ShapeRange.ThreeD.Depth = 144# End Sub Sub TEST11() With ActiveSheet.Shapes.AddShape(msoShapeSun, 450, 150, 120, 120) .ShapeRange.Line.Weight = 0.75 .ShapeRange.Line.ForeColor.SchemeColor = 64 .ShapeRange.Fill.ForeColor.SchemeColor = 10 .ShapeRange.Fill.OneColorGradient msoGradientFromCorner, 1, 0.59 .ShapeRange.Adjustments.Item(1) = 0.3016 .ShapeRange.ThreeD.SetThreeDFormat msoThreeD7 .ShapeRange.ThreeD.PresetMaterial = msoMaterialMetal .ShapeRange.ThreeD.Depth = 144# End With End Sub

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

    エクセル(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"はオブジェクトの名前のようですが、名前がわかっていないオブジェクト(但し上記マクロで書いたので場所はわかっている)を選択するにはどうしたらいいでしょうか。

  • エクセル。マクロの記録で出来たVBAを書き直したい。

    エクセル2000(OSはWindows2000)でマクロの記録を行いました。 四角形を出してA1セルにリンクさせフォント等の設定をしたものです。 Sub Macro5() ActiveSheet.Shapes.AddShape(msoShapeRectangle, 200#, 100#, 140#, 80#). _ Select ExecuteExcel4Macro "FORMULA(""=R1C1"")" With Selection.Font .Name = "Century Gothic" .FontStyle = "太字" .Size = 72 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic End With Selection.ShapeRange.Fill.Visible = msoFalse 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 = msoFalse End Sub これを、実際には四角形をセレクトしないで実行させたいのです。 With ActiveSheet.Shapes.AddShape~ End With といった形になるのでしょうが、どうもうまく出来ません。 ご教示いただければ幸いです。

  • Excel マクロでチェックボックスに枠線

    エクセルマクロについて教えて下さい。 Excel2003を使用しています。 1つのシートに、フォームツールボックスからチェックボックスを沢山(300個以上)配置しました。 チェックボックスをクリック(オン)するのと同時にチェックボックスに赤い枠線を付けたいのですが、1つのマクロでチェックボックスのオブジェクト名を取得しながら枠線を付けることは出来ませんでしょうか? 以下のマクロを試してみたのですが、Application.Callerの所でエラーになってしまいました。 Sub checkon() ActiveSheet.Shapes(Application.Caller).Select Selection.ShapeRange.Line.Weight = 3# 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 = 10 i = ActiveCell.Address(False, False, xlA1) Range(i).Select End Sub 特定のチェックボックスを指定した場合は、問題ないのですが・・。 (例)ActiveSheet.Shapes("Check Box 1").Select どなたか詳しい方、宜しくお願い致します。

  • Excel-VBA コメントの書式設定

    Excel-VBA コメントの書式設定 コメントの書式設定をExcel-VBAで定義したい。 従い「マクロの記録」を実行して下記のソースコードを取得しました。 これを実行すると次の実行エラーが発生しました!? ★正常に動作させるソースコードの事例をいただければ幸いです。 ご指導よろしくお願いいたします。 実行時エラー'438' オブジェクトは、このプロパティまたはメソッドをサポートしていません。 Sub Macro1() ' 処理:マクロの記録 ' 目的:「コメントの挿入」と「コメントの書式設定」をする。 Range("A2").Select Range("A2").AddComment Range("A2").Comment.Visible = False Range("A2").Comment.Text Text:="コメント" & Chr(10) & "今日は良いお天気ですね。" '▽次で実行エラーが起きる!? Selection.ShapeRange.ScaleWidth 1.58, msoFalse, msoScaleFromTopLeft Selection.ShapeRange.ScaleHeight 1.49, msoFalse, msoScaleFromTopLeft Selection.ShapeRange.Fill.Visible = msoTrue Selection.ShapeRange.Fill.Solid Selection.ShapeRange.Fill.ForeColor.SchemeColor = 9 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.RGB = RGB(0, 0, 0) Selection.ShapeRange.Line.BackColor.RGB = RGB(255, 255, 255) Selection.ShapeRange.LockAspectRatio = msoTrue Selection.ShapeRange.Height = 141.75 Selection.ShapeRange.Width = 283.5 Range("A1").Select End Sub

  • Office VBAについて

    OFFICE2007のプログラムをググったところ 下記のような表記が見つかりました。 ActiveSheet.Shapes.AddShape _ (msoShapeOval, 400.75, 110.75, 30.25, 10.5).Select Selection.ShapeRange.Fill.Visible = msoFalse Selection.ShapeRange.Fill.Transparency = 0# ここで質問ですが、Selection.ShapeRange.Fill.Transparencyの0#とはなんでしょうか。 またAddShapeの中の数値に#を入れているパターンもありました。 いろいろ探したのですが見つかりませんので教えてください。

  • Word2007マクロ

    宜しくお願い致します Word2007でこんな事が出来ますか Excel2007で線路を作るマクロを作成しました(本を見て) これをWordでも使用したいのですが、Excelのマクロそのまま WordのVisual Basicに書き込んでもエラーが出て機能しません Excelのマクロは以下です Sub 線路作成() 上端位置 = Selection.Top 左端位置 = Selection.Left  Selection.ShapeRange.Line.Weight = 6# Selection.ShapeRange.Line.Visible = msoTrue Selection.ShapeRange.Line.Style = msoLineSingle Selection.ShapeRange.Duplicate.Select Selection.ShapeRange.IncrementLeft -18# Selection.ShapeRange.IncrementTop 9.6 Selection.ShapeRange.Line.DashStyle = msoLineDash Selection.ShapeRange.Line.Weight = 4.5 Selection.ShapeRange.Line.Visible = msoTrue Selection.ShapeRange.Line.Style = msoLineSingle Selection.ShapeRange.Line.ForeColor.SchemeColor = 9 Selection.ShapeRange.Line.Visible = msoTrue Selection.Top = 上端位置 Selection.Left = 左端位置 End Sub Wordで使えるようにするには、どこを直せばよいでしょうか。

  • マクロを使ってexcel2007でテキストボックス内をセンタリングしたい

    以前、excel2000でマクロの児童記録で記録し、それを利用して 下のようなマクロを使っていました (列ボックス1は変数) ActiveSheet.Shapes.AddTextbox(msoTextOrientationVerticalFarEast, 列ボックス1, 205 , 15, 105).Select Selection.Characters.Text = 顧客名 With Selection.Characters.Font .Name = "MS Pゴシック" .FontStyle = "標準" .Size = 8 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = 3 End With With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlTop .Orientation = xlVertical .AutoSize = False .AddIndent = False End With Selection.ShapeRange.Fill.Visible = False Selection.ShapeRange.Fill.Solid Selection.ShapeRange.Fill.Transparency = 1# 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 = msoFalse Selection.ShapeRange.TextFrame.MarginLeft = 0 Selection.ShapeRange.TextFrame.MarginRight = 0 Selection.ShapeRange.TextFrame.MarginTop = 0 Selection.ShapeRange.TextFrame.MarginBottom = 0 これで問題なく動作していたのですが excel2007で動作させると テキストボックス内が水平方向にセンタリングされていません。 excel2007でテキストボックスをかく記録をしてもマクロには何も残らず 困っています。 excel2007でも、センタリングさせる方法を教えて下さい どうかよろしくお願いします

  • Excel マクロ 任意のセルから実行したい

    こんにちは、Excel2003を使用しています。 ExcelでK55からE55までのセルの値を削除して(空白にして) それぞれに「---を引いた透明のダイアローグボックス」を コピーしていくマクロを作成したことがあります。 このときは開始するセルがK55と決まっていたのですが 今度は任意のセルから(たとえば選択したセルの右隣とか) 実行したいのですがどのようにマクロを作ればよいでしょうか ご存じの方お教えください。 なお参考に上記のマクロを記載します。 Range("E55:J55").Select Selection.ClearContents Range("H55").Select ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 672#, 729#, _ 81#, 13.5).Select Selection.Characters.Text = "" With Selection.Font .Name = "MS Pゴシック" .FontStyle = "標準" .Size = 11 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic End With 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 = msoFalse ActiveSheet.Shapes("Text Box 12").Select Selection.Characters.Text = "---" With Selection.Characters(Start:=1, Length:=3).Font .Name = "MS Pゴシック" .FontStyle = "標準" .Size = 11 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic End With Selection.HorizontalAlignment = xlCenter Range("K55").Select ActiveSheet.Shapes("Text Box 12").Select Selection.Copy Range("I55").Select ActiveSheet.Paste Range("H55").Select ActiveSheet.Paste Range("G55").Select ActiveSheet.Paste Range("F55").Select ActiveSheet.Paste Range("E55").Select ActiveSheet.Paste Range("E56").Select Selection.Copy Range("F56:J56").Select ActiveSheet.Paste Application.CutCopyMode = False Range("E56:J56").Select Selection.Copy Range("E57:E59").Select ActiveSheet.Paste Application.CutCopyMode = False Range("K59").Select End Sub

専門家に質問してみよう