No.1ベストアンサー
- 回答日時:
横方向のみですが、
Sub Test()
Dim TP, LF, WD
TP = Selection.Top + (Selection.Height / 2)
LF = Selection.Left
WD = Selection.Width
ActiveSheet.Shapes.AddShape(msoShapeOval, LF, TP - 3, 6, 6).Select
ActiveSheet.Shapes.AddLine(LF + 6, TP, LF + WD, TP).Select
Selection.ShapeRange.Line.EndArrowheadStyle = msoArrowheadTriangle
End Sub
解決です。完璧です。ありがとうございました。
ここ1ヶ月間悶々と悩んでいたのです。
このVBAの記述内容が理解できるように精進いたします。
No.2
- 回答日時:
こんにちは。
選択範囲の始点列中央から終点列中央へ、
選択範囲の縦中央を通り、始点が白丸の矢印を作成します。
○の直径は、選択範囲の第1行の高さに係数を掛けています。
その他 細かい点は、「マクロの記録」を参考にご自分でカスタマイズしてください。
またマクロの登録方法もお任せします。
Sub Macro1()
Dim rRng As Range
Dim X(1) As Single
Dim Y As Single
Dim D As Single
Dim shpRef(1) As Shape
Dim iColor As Long
Dim i As Long
On Error Resume Next
Set rRng = Selection
If Err Then Exit Sub
On Error GoTo 0
iColor = 8 '色
With rRng
With .Rows(1)
D = .Height * 0.75 '丸の直径 係数
End With
If .Columns.Count = 1 Then Exit Sub
With .Columns(1)
X(0) = .Left + .Width / 2
End With
With .Columns(.Columns.Count)
X(1) = .Left + .Width / 2
End With
Y = .Top + .Height / 2
End With
With ActiveSheet.Shapes
Set shpRef(0) = .AddLine(X(0) + D / 2, Y, X(1), Y)
Set shpRef(1) = .AddShape(msoShapeOval, X(0), Y, D, D)
With shpRef(1)
.Top = .Top - .Height / 2
.Left = .Left - .Width / 2
End With
End With
For i = 0 To 1
With shpRef(i)
.Fill.Visible = msoFalse
.Line.Weight = 1#
.Line.DashStyle = msoLineSolid
.Line.Style = msoLineSingle
.Line.Transparency = 0#
.Line.Visible = msoTrue
.Line.ForeColor.SchemeColor = iColor
.Visible = msoCTrue
End With
Next
With shpRef(0).Line
.EndArrowheadStyle = msoArrowheadTriangle
.EndArrowheadLength = msoArrowheadLengthMedium
.EndArrowheadWidth = msoArrowheadWidthMedium
End With
ActiveSheet.Shapes.Range(Array(shpRef(0).Name, shpRef(1).Name)).Select
With Selection.ShapeRange
.Group.Select
.LockAspectRatio = msoTrue
End With
rRng.Select
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/09 14:54
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 11:02
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 12:30
- Excel(エクセル) エクセルVBA 複数行にまたがっている選択を判定するには 2 2023/05/21 21:54
- Visual Basic(VBA) Excelのマクロについて教えてください。 1 2023/03/12 12:16
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/04 17:58
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2022/08/04 13:56
- Visual Basic(VBA) データのある範囲を選択するVBAについて 2 2022/09/03 00:20
- Visual Basic(VBA) 【VBA】Excelの特定範囲のセルを画像で保存したい 2 2023/01/25 13:06
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
エクセルで日にちを入力すると矢印が自動的に引かれるとか。
Excel(エクセル)
-
VBAを使用して時間単位で矢印をひきたいです!
Excel(エクセル)
-
VBA 選択した複数のセルにオートシェイプ(矢印)挿入について 選択したセルに無印挿入まではできたの
Excel(エクセル)
-
-
4
着地点が2点ある→を出すには
Windows Vista・XP
-
5
オートシェイプがずれる
Excel(エクセル)
-
6
日付で矢印マクロ
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
メッセージボックスのOKボタ...
-
オートフィルターとExcelマクロ...
-
エクセルのマクロについて教え...
-
Excel・Word リサーチ機能を無...
-
エクセルに張り付けた写真のフ...
-
エクセルで特定の列が0表示の場...
-
マクロのクリア設定がシートの...
-
テニス(ダブルス)乱数表 Exc...
-
Excel VBAからAccessマクロを実...
-
accessで未入力の場合にメッセ...
-
Tera term で ログインプロンプ...
-
EXCEL 範囲指定後矢印線...
-
特定のPCだけ動作しないVBAマク...
-
エクセルのマクロについて教え...
-
Excel マクロ VBA プロシー...
-
Excel 改ページのVBAうまくい...
-
VBAのIF分で時間指定の条件式の...
-
VBAマクロ非表示が遅いので早く...
-
時間差を求めるマクロコードを...
-
エクセルのマクロをセルの値に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel・Word リサーチ機能を無...
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
Excel マクロ VBA プロシー...
-
メッセージボックスのOKボタ...
-
一つのTeratermのマクロで複数...
-
ExcelのVBA。public変数の値が...
-
Excel VBAからAccessマクロを実...
-
TERA TERMを隠す方法
-
ExcelVBAでPDFを閉じるソース
-
エクセルに張り付けた写真のフ...
-
EXCELのVBAでRange("A1:C4")を...
-
エクセルで別のセルにあるふり...
-
ソース内の行末に\\
-
マクロ実行時、ユーザーフォー...
-
特定文字のある行の前に空白行...
-
エクセルVBA
-
wordを起動した際に特定のペー...
-
マクロの記録を使用したマクロ...
-
ダブルクリックで貼り付けた画...
おすすめ情報