
No.3ベストアンサー
- 回答日時:
そういえば..昔、書いた事があるコードです。
シートモジュールに置いて、ダブルクリックで描画開始、
どこかのセルを選択するとWidthかHeightをテキストボックスで追加、というものでした。
何かの参考になるようでしたらどうぞ。
'SheetModule
Option Explicit
Dim flg As Boolean
'-----------------------------------------------------------
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, _
Cancel As Boolean)
Cancel = True
Application.CommandBars.FindControl(ID:=1042).accDoDefaultAction
flg = True
End Sub
'-----------------------------------------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If flg Then
Call LINETXT(Me.Lines(Me.Lines.Count))
flg = False
End If
End Sub
'-----------------------------------------------------------
Private Sub LINETXT(ByRef LX As Line)
Const x As Single = 1 'scale
Dim Lp As Single
Dim Tp As Single
Dim Wp As Single
Dim Hp As Single
Dim St As String
With LX
Lp = .Left
Tp = .Top
Wp = .Width
Hp = .Height
End With
If Wp > Hp Then
St = "W " & Wp * x
Else
St = "H " & Hp * x
End If
With Me.TextBoxes.Add(0, 0, 0, 0)
.ShapeRange.Line.Visible = msoFalse
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.AutoSize = True
.Font.Size = 9
.Text = St
.Left = Lp + (Wp - .Width) / 2
.Top = Tp + (Hp - .Height) / 2
End With
End Sub
'-----------------------------------------------------------
Sub sampletest() 'Textのみ追加。Lineを任意選択して実行。
If TypeName(Selection) = "Line" Then
Call LINETXT(Selection)
End If
End Sub
御親切にマクロの例文も頂きありがとうございます。
ダブルクリックイベントと組み合わせることで、かなり希望に近いものが作成できました。
ありがとうございました。
No.2
- 回答日時:
バージョンは2007or2010でしょうか。
Sub test()
Application.CommandBars.FindControl(ID:=1042).accDoDefaultAction
End Sub
こんなマクロで可能です。
直線コネクタのボタンを押すようなマクロです。
なので、左上のクイックアクセスツールバーに[直線コネクタ]を登録するのがマクロ要らずで簡単ですけど。
クイックアクセスツールバー登録手順は、
左上▼[クイックアクセスツールバーのユーザー設定][その他のコマンド]を選択します。
「Excelのオプション」ダイアログウィンドウが開きます。
よくわからなければ[Alt][f][t]で開いて[クイックアクセスツールバー]タブを選択しても良いです。
「コマンドの選択」ドロップダウンで「すべてのコマンド」を表示させ
[直線コネクタ]を探して、中央の[追加]ボタンクリック。
[OK]で閉じます。
回答ありがとうございます!
コマンドバーのコントロールが可能ということが解り大変参考になりました!
ID番号で他のコマンドも制御可能なようで、今後色々使えそうです。
ありがとうございました!!
No.1
- 回答日時:
オートシェイプの線でよいのでしょうか?
マクロの自動記録で
Set myLine = ActiveSheet.Shapes.AddLine(130#, 250, 350, 430)
みたいなのができると思いますが?
この回答への補足
早速の回答ありがとうございます!
当方の説明が悪くて申し訳ございません。
(beginx:=x1, beginy:=y1, endx:=x2, endy:=y2)のように座標を数値で指定するのではなく、マウスで任意の位置からクリックしながら線を引っ張り、離した位置で線が終わる、というイベント(?)にしたく考えています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数のデータ系列の線の太さを...
-
エクセルでツールバーに「縮小...
-
最初の1回のみにボタンクリッ...
-
ファイル名を今日の日付、時刻...
-
ピボットグラフの書式の固定に...
-
VBA[Private Sub]のコードをシ...
-
cellsで特定の離れた範囲を選択...
-
どのドキュメントは暗号化され...
-
Powerpointでランダムな数字の...
-
別ブックからユーザーフォーム...
-
Excelのラジオボタンにチェック...
-
エクセル vba クリック~離し...
-
VBAで実行時エラー '1004'の解...
-
Pictures.Insertメソッド⇒Shape...
-
【ExcelVBA】クエリの更新とピ...
-
COMポートマクロ入りのxlsファ...
-
ユーザーフォームを「Esc」キー...
-
エクセルで「ODBC Microsoft Ac...
-
WORD VBA 表の複数行選択を教え...
-
VBAでこのような図形の移動はで...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数のデータ系列の線の太さを...
-
エクセルでツールバーに「縮小...
-
ファイル名を今日の日付、時刻...
-
VBA[Private Sub]のコードをシ...
-
Powerpointでランダムな数字の...
-
最初の1回のみにボタンクリッ...
-
cellsで特定の離れた範囲を選択...
-
どのドキュメントは暗号化され...
-
エクセルのマクロでSelection.S...
-
エクセルのマクロのパスワード保護
-
ピボットグラフの書式の固定に...
-
VBAを使ってエクセルシート...
-
別ブックからユーザーフォーム...
-
エクセルVBAで、画像の倍率を知...
-
【ExcelVBA】クエリの更新とピ...
-
Pictures.Insertメソッド⇒Shape...
-
エクセル2007 テキストボ...
-
Visual Basicでのグラフ作成
-
エクセルで「ODBC Microsoft Ac...
-
エクセルシートをまとめて印刷...
おすすめ情報