[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『入力されたセル内の文字列の末尾に文字を入力』(mutum)
記録で出来たマクロ
Sub Macro1()
' Macro1 Macro
ActiveCell.FormulaR1C1 = "★"
End Sub
こんばんわ。。
ActiveCell.Value = ActiveCell.Value & "★"
かな? (kei)
ちょっと気になったので・・・・。 >20個程度のボタンを配置し、それぞれ記号を決めて入力できるようにしたいのです。
これは、20個のボタンを配置し、
そのそれぞれに Sub Macro1() ActiveCell.Value = ActiveCell.Value & "★" End Sub Sub Macro2() ActiveCell.Value = ActiveCell.Value & "◎" End Sub Sub Macro3() ActiveCell.Value = ActiveCell.Value & "▼" End Sub ・ ・
と20個のボタンに追加する文字列だけを変えたコードを用意するのですか?
新規ブックにて、試してみてください。 標準モジュールに
'=============================================================
Sub 準備()
Dim r As Range
With ActiveSheet
.DropDowns.Delete
.Buttons.Delete
Set r = .Range("a1:b1")
With .DropDowns.Add(r.Left, r.Top, r.Width, r.Height)
.Name = "drp1"
.List() = Array("○", "●", "◎", "△", "▲", "▽", "▼", "■", "□", "◆", _
"◇", "☆", "★", "@", "*", "♪", "∞", "♂", "♀", "※")
End With
Set r = .Range("d1:d2")
With .Buttons.Add(r.Left, r.Top, r.Width, r.Height)
.Name = "btn1"
.Caption = "文字追加"
.OnAction = ThisWorkbook.Name & "!addstr"
End With
End With
End Sub
'=======================================================================
Sub addstr()
Dim g0 As Long
With ActiveCell
g0 = .Parent.DropDowns("drp1").Value
If g0 > 0 Then .Value = .Value & .Parent.DropDowns("drp1").List(g0)
End With
End Sub
準備を実行してみて下さい。
アクティブシートに コンボボックスとボタンが一つずつ配置されるはずです。
コンボボックスで追加したい文字列を選択し、文字を追加したいセルを選択し、 文字追加ボタンをクリックしてください。 コンボボックスで選択した文字が追加されませんか?
今回は、コンボボックスの選択文字列(★ とか ▼等)は、コード内に記述しましたが、 本来は、どこかのセルに配置し、コンボボックスに登録します。
このようなコントロール構造にしておくと、20個もボタンを配置する必要もないし、 仮に選択文字列が増えてもコードの変更も必要ありません。
検討してみてください。
ichinose
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.