• 締切済み

エクセルマクロ

OS:WINDOWS7 SOFT:EXCELL 2007 PC:VAIO VGN-FW73JGB です。マクロで図形入り文字を入れると、文字の右側が切れます。中央に配置するように設定すれば良いですが、その都度変更する必要があるので、教えて頂きたいです。よろしくお願いします。 If CheckBox5 = True Then Set sp = ActiveSheet.Shapes.AddTextbox(msoTextOrientationVertical, 290, 212.5, 20, 45) With sp .TextFrame.Characters.Text = "延 長" sp.Select Selection.ShapeRange.Fill.Visible = msoFalse With sp With .Line .Weight = xlThin .ForeColor.SchemeColor = 8 End With End With End With End If

みんなの回答

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.2

少し変えてみました。 折角 Set sp = ActiveSheet.Shapes.AddTextbox(・・・・・ としているのですから sp.Select しないで通しましょう。 'Set sp = ActiveSheet.Shapes.AddTextbox(msoTextOrientationVertical, 290, 212.5, 20, 45) Set sp = ActiveSheet.Shapes.AddTextbox(msoTextOrientationVerticalFarEast, 290, 212.5, 20, 45) With sp '.TextFrame.Characters.Text = "延 長" .TextFrame.Characters.Text = "延長" .TextFrame.HorizontalAlignment = xlHAlignCenter .TextFrame.VerticalAlignment = xlVAlignCenter .Fill.Visible = msoFalse With .Line .Weight = xlThin .ForeColor.SchemeColor = 8 End With End With

  • Trick--o--
  • ベストアンサー率20% (413/2034)
回答No.1

Excell2000で試しましたが問題なく動くように見えます ただ、ソースが……  Dim sp As Shape  Set sp = ActiveSheet.Shapes.AddTextbox(msoTextOrientationVertical, 290, 212.5, 20, 45)  With sp   .TextFrame.Characters.Text = "延 長"   .Fill.Visible = msoFalse   With .Line    .Weight = xlThin    .ForeColor.SchemeColor = 8   End With  End With > マクロで図形入り文字を入れると、文字の右側が切れます。 どのようになるのか、画像を貼り付けた方がわかりやすいと思います

masa197109
質問者

補足

回答ありがとうございます。 前のパソコン、excel2000を使っていた時は、確かに問題はありませんでした。2007を使ってまだそんなに経っていないので、よくわかりません。

関連するQ&A

  • 楕円の塗りつぶし

    色々と試してはみたのですが、なかなかうまくいきません。 Private Sub Worksheet_Calculate() For i = 1 To 100 n = (i - 1) * 3 + 8 If Cells(n, "R").Value < -10 Then c = 10 Else Select Case Cells(n, "S").Value Case Is = 0 c = 10 Case Is > -89 c = 17 Case Is < -100 c = 10 Case Else c = 12 End Select End If With Sheets("ABC").Shapes("テキスト " & i) .Line.ForeColor.SchemeColor = c .TextFrame.Characters.Font.ColorIndex = c - 7 .TextFrame.Characters.Font.Size = 6 End With If Cells(n, "W").Value = 37 Then a = 39 Else a = 3 End If With Sheets("ABC").Shapes("楕円 1") .Fill.ForeColor.SchemeColor = a - 7 .TextFrame.Characters.Font.ColorIndex = a End With Next i End Sub といった感じで作成しています。 今回 If Cells(n, "W").Value = 37 Then a = 39 Else a = 3 End If With Sheets("ABC").Shapes("楕円 1") .Fill.ForeColor.SchemeColor = a - 7 .TextFrame.Characters.Font.ColorIndex = a End With 上記の部分を追加しました。 トラブルだらけです。 読みに行ったセルの値が37なら楕円を39の色にて塗りつぶす、 それ以外なら3です。 ただ、まだ塗りつぶしの色と文字の色の関係は調べていません。 長くわかりづらいと思いますが、宜しくお願いいたします。

  • エクセル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

  • マクロを使って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でも、センタリングさせる方法を教えて下さい どうかよろしくお願いします

  • マクロを使って、シート印刷完了時にシートに”完了”マークをつけたいのですが 追加質問

    先ほど Thisworkbookモジュールに Private Sub Workbook_BeforePrint(Cancel As Boolean) Application.OnTime Now, "STAMP" End Sub 標準モジュールに Sub STAMP() With ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 50, 50, 50, 50) .Fill.Visible = msoFalse .Line.Visible = msoFalse With .TextFrame .Characters.Font.Name = "MS UI Gothic" .Characters.Font.Size = 48 .Characters.Font.ColorIndex = 8 .AutoSize = True .Characters.Text = "プリント済" End With End With End Sub と教えてもらったのですが。 .Characters.Text = "プリント済"の場所に 印刷日の日付も同時に表示したいのですが。 どのようにしたらよいのでしょうか。 教えてください。 宜しくお願いします。

  • エクセル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です。

  • エクセルのVBAのことで

    以下のVBAを実行するとテキストボックスの"あ"という文字で円を描くことができます。 Sub test1() pai = 3.14159 r = 100 Worksheets("sheet1").Activate For s = 0 To 360 Step 15 rd = s / 180 * pai ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, _ 200 + r * Sin(rd), 50 + r - r * Cos(rd), 20, 20).Select Selection.Characters.Text = "あ" Selection.ShapeRange.Fill.Visible = msoFalse Selection.ShapeRange.Line.Visible = msoFalse Next s End Sub この円の半分の半径の円を元の円とドーナツ型(◎)になるように描くにはどのようなスクリプトにすればいいのでしょうか?

  • エクセルVBAでテキストボックスに文字

    Excel2016です。 ワークシート上に配置した、図形の「テキストボックス」に文字を入れるVBAについての質問です。 下記のTEST01では期待通り文字が入りますが、これはテキストボックスをSelectしなければなりません。 TEST02ならSelectせずにOKかと思ったら実行時エラーとなりました。 どのように修正したらよろしいのでしょうか? Sub TEST01()   Sheets(“Sheet1”).Shapes.Range(Array("TextBox 3")).Select   Selection.ShapeRange.TextFrame2.TextRange.Characters.Text = "TEST/TEST/2020"   Selection.ShapeRange.TextFrame2.TextRange.Font.Name = "Meiryo UI"   Selection.ShapeRange.TextFrame2.TextRange.Font.Bold = msoTrue End Sub Sub TEST02()   With Sheets(“Sheet1”).Shapes.Range(Array("TextBox 3"))     .ShapeRange.TextFrame2.TextRange.Characters.Text = "TEST/TEST/2020"     .ShapeRange.TextFrame2.TextRange.Font.Name = "Meiryo UI"     .ShapeRange.TextFrame2.TextRange.Font.Bold = msoTrue   End With End Sub

  • エクセル マクロで引いた線の色設定が戻せない

    エクセルで作成した、出席簿にマクロで 土日などに赤線で罫線の間に縦に オートシェィプ直線を引いています。 次に転出者の欄には、横に線をマクロで引いていますが 色が変えられません。 マクロ終了後もオートシェイプの線色は黒でも 、線を引くと赤のままです。 その線を選択して、色を変えないと 変えられない状態です。 マクロ終了前に、色をリセットする事は出来ませんか? 下記の内容がマクロの一部です。 よろしくお願いします。 If yobi = doyo Or yobi = niti Then Cells(3, 2 + n).Activate If yobi = niti Then With Selection.Font .ColorIndex = 3 End With End If ActiveSheet.Shapes.AddLine(110.25 + 21.75 * (n - 1), 42, 110.25 + 21.75 * (n - 1), 651).Select Selection.ShapeRange.Line.ForeColor.SchemeColor = 10 '10=赤色 End If If yobi = "" Then ActiveSheet.Shapes.AddLine(110.25 + 21.75 * (n - 1), 14.25, 110.25 + 21.75 * (n - 1), 651).Select Selection.ShapeRange.Line.ForeColor.SchemeColor = 8 '8=黒色 End If

  • エクセル。マクロの記録で出来た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 といった形になるのでしょうが、どうもうまく出来ません。 ご教示いただければ幸いです。

  • エクセルで、最背面に移動と塗りつぶしなし

    先ほど、最背面に移動を Dim sp As Shape Set sp = ActiveSheet.Shapes.AddShape(msoShapeOval, 340, 140, 73, 52) With sp With .Line .Weight = xlThin .ForeColor.SchemeColor = 10 End With .ZOrder msoSendToBack End With の様に教えていただきました。しかし、併せてオートシェイプの書式設定で塗りつぶしの色の「塗りつぶしなし」を設定したいのです。 自動記録に試して見ましたが,エラーが出て上手くいきません。よろしくお願いします。

専門家に質問してみよう