
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を探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ファイル名を今日の日付、時刻...
-
複数のデータ系列の線の太さを...
-
エクセルでツールバーに「縮小...
-
VBA[Private Sub]のコードをシ...
-
【ExcelVBA】クエリの更新とピ...
-
エクセルワークシート上に印刷...
-
どのドキュメントは暗号化され...
-
htmlまたはJavascriptからファ...
-
Word VBAでWindows media playe...
-
ピボットグラフの書式の固定に...
-
cellsで特定の離れた範囲を選択...
-
WORD VBA 表の複数行選択を教え...
-
VBAで実行時エラー '1004'の解...
-
VBAで棒グラフの色を変えたい
-
Pictures.Insertメソッド⇒Shape...
-
Powerpointでランダムな数字の...
-
エクセル2007 テキストボ...
-
Windows10のクイックアクセスと...
-
Excelが勝手にシート移動してし...
-
【マクロ】宣言は、何のために...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数のデータ系列の線の太さを...
-
エクセルでツールバーに「縮小...
-
ファイル名を今日の日付、時刻...
-
どのドキュメントは暗号化され...
-
VBA[Private Sub]のコードをシ...
-
最初の1回のみにボタンクリッ...
-
Powerpointでランダムな数字の...
-
cellsで特定の離れた範囲を選択...
-
別ブックからユーザーフォーム...
-
ピボットグラフの書式の固定に...
-
エクセルVBAで、画像の倍率を知...
-
【ExcelVBA】クエリの更新とピ...
-
Pictures.Insertメソッド⇒Shape...
-
VBAを使ってエクセルシート...
-
EXCELにクリップボードにある画...
-
エクセル2007 テキストボ...
-
VBAで実行時エラー '1004'の解...
-
エクセルのマクロでSelection.S...
-
ユーザフォームをどの画面から...
-
wordのマクロで縮小して貼り付...
おすすめ情報