[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロボタン』(小波)
sheet1の表には複数のマクロボタンが配置されてます。
例えばD5セルにボタンがあったとしますね。
D5の上のセル(D4)に何か入力されたらマクロが実行する
というような事は出来ますか?
検索の方法がまずいのか中々解決にいたりません。
そもそも可能なのかさえも分からず質問させていただきました。
どなたか分かる方よろしくお願います。
< 使用 Excel:Excel2007、使用 OS:Windows10 >
その「マクロボタン」は何で作ったものですか? (OK) 2020/07/15(水) 17:29
簡単なのは、コードをコマンドボタンのイベントなどに直接 書き込むのではなく、Callするようにすることです。 (OK) 2020/07/15(水) 17:31
ボタンの種類と言うかなんて呼ぶのか考えた事もないので知らないけど
フォームコントロールの場合
With Sheets("Sheet1").Shapes(Application.Caller).OLEFormat.Object MsgBox "コマンドボタンがあるセル範囲" & vbLf & Range(.TopLeftCell, .BottomRightCell).Address(0, 0) End With
後は自分で色々試して研究してください。 (BJ) 2020/07/15(水) 17:41
すみません。
>D5の上のセル(D4)に何か入力されたらマクロが実行する
これを理解してませんでした。 私のは、ボタンを押した場合。 (BJ) 2020/07/15(水) 17:56
シェイプにtestというマクロを登録してるのなら、 シートのイベントでCallするだけです。
Private Sub Worksheet_Change(ByVal Target As Range) Call test End Sub
↓のように書くこともできます。
Private Sub Worksheet_Change(ByVal Target As Range) test End Sub (OK) 2020/07/15(水) 18:21
イベントを起動させるセルを限定するのは↓が参考になると思います。
[[20200708185113]] 『複数のWorksheet_Change』(S)
(OK) 2020/07/15(水) 18:25
もしかして、D4セルの内容が変更されたらD5に配置してあるシェイプに登録してある マクロを起動、E4セルの内容が変更されたらE5に配置してあるシェイプに登録してある マクロを起動、とかですか?
難易度がグッと上がりそうですが。 (OK) 2020/07/15(水) 18:28
D4セルの内容が変更されたらD5に配置してあるシェイプに登録してある マクロを起動、E4セルの内容が変更されたらE5に配置してあるシェイプに登録してあるマクロを起動なんですが、マクロ自体は同じものです。
D4に何か入力されたらボタンで行を挿入するようにしてます。
コードはこれです。
Sub test()
Dim nRow nRow = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row Rows(nRow).Insert Shift:=xlDown End Sub それで教えていただいたコードで試してみたのですが、単純にそのまま該当のシート先にコードを入れても指定したアイテムの名前が見つかりませんと言うエラーが出たのですがやり方が間違ってるんですよね?
(小波) 2020/07/16(木) 08:33
Dim nRow nRow = Target.Offset(1).Row Application.EnableEvents = False Rows(nRow).Insert Shift:=xlDown Application.EnableEvents = True End Sub (mm) 2020/07/16(木) 09:11
衝突しましたがそのままアップします。
要するに、セル内容が変更されたら、一行下に行挿入、 ということですか?
ボタンとか全く使ってないです。
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Row <> 4 Then Exit Sub Target.Offset(1).EntireRow.Insert End Sub (OK) 2020/07/16(木) 09:13
>指定したアイテムの名前が見つかりません 図形は作成すると自動的に番号が番号が振られます。 この番号を指定する事で取得が可能です。 次のように記述します。 ActiveSheet.Shapes(1) 図形を名前で指定する方法は次のように記述します。 ActiveSheet.Shapes("正方形/長方形 1") 図形の名前を確認したい場合は、次のような手順で簡単に確認する事ができます。 名前を確認したい図形をクリックします。 左上の名前ボックス部分に、クリックされている図形の名前が表示されます。
nRow = ActiveSheet.Shapes(※)(Application.Caller).TopLeftCell.Row ※に実際に使用する図形の番号または名前を指定します。 (KLY) 2020/07/16(木) 09:48
(小波) 2020/07/16(木) 10:01
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.