
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で質問しましょう!
似たような質問が見つかりました
- PowerPoint(パワーポイント) 2016EXCEL→2016PowerPointにコピペすると図形がゆがみます 5 2022/03/31 11:44
- Excel(エクセル) エクセルで同じ数字同士を自動で線で結ぶVBAを教えてください 6 2022/04/26 23:13
- その他(Microsoft Office) ワードのマクロについて教えてください。 1 2023/01/22 11:43
- Visual Basic(VBA) エクセルマクロでアニメを作る方法を教えてください。 1 2023/02/07 14:27
- Visual Basic(VBA) VBA 画面上のカーソルに文字数字を入力するコードを教えて下さい 1 2022/10/30 10:31
- Excel(エクセル) エクセルでcsvファイルを開いてVBAを使いたい 7 2022/04/28 11:12
- Excel(エクセル) エクセル バーコード作成で他のシートを参照するには? 2 2023/05/03 16:57
- Visual Basic(VBA) Excel VBA 教えてください。 VBA初心者です。 詳しい方がいましたら教えてください。 下記 3 2023/04/25 11:22
- その他(Microsoft Office) エクセルのマクロについて教えてください。 5 2023/01/21 09:39
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マクロ
-
複数のデータ系列の線の太さを...
-
エクセルの表にボタンを付けたい
-
hostent.h_addrの説明URL
-
エクセルシートをまとめて印刷...
-
VBAコードでシート名を取得した...
-
VBAの質問です
-
マクロの作成について
-
最初の1回のみにボタンクリッ...
-
勤怠管理でコマンドボタンを押...
-
妹のためにゲームを作りたい!
-
【エクセルVBA】エクセルファイ...
-
PowerpointファイルにCtrl+Vで...
-
エクセルマクロでオブジェクト...
-
cellsで特定の離れた範囲を選択...
-
現在選択している行すべてに色...
-
エクセルマクロのグラフ操作
-
エクセルでのユーザー定義用紙...
-
エクセルでツールバーに「縮小...
-
VBAを使ってエクセルシート...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数のデータ系列の線の太さを...
-
エクセルでツールバーに「縮小...
-
ファイル名を今日の日付、時刻...
-
VBA[Private Sub]のコードをシ...
-
cellsで特定の離れた範囲を選択...
-
Powerpointでランダムな数字の...
-
どのドキュメントは暗号化され...
-
最初の1回のみにボタンクリッ...
-
【ExcelVBA】クエリの更新とピ...
-
エクセルVBAで、画像の倍率を知...
-
VBAを使ってエクセルシート...
-
別ブックからユーザーフォーム...
-
エクセルのマクロでSelection.S...
-
ピボットグラフの書式の固定に...
-
wordのマクロで縮小して貼り付...
-
Pictures.Insertメソッド⇒Shape...
-
EXCELにクリップボードにある画...
-
エクセル2007 テキストボ...
-
エクセルで「ODBC Microsoft Ac...
-
ACCESS VBAからWordのテンプレ...
おすすめ情報