[[20101010200249]] 『入力されたセル内の文字列の末尾に文字を入力』(mutum) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『入力されたセル内の文字列の末尾に文字を入力』(mutum)
VISTA で EXCEL2007です。
ボタンをクリックして、記号入力をしようとしています。
選択したのセルの文字列の末尾に、例えば”★”という記号を入力したいのですが、マクロの書き方が判りません。20個程度のボタンを配置し、それぞれ記号を決めて入力できるようにしたいのです。
マクロの記録を使ってみますと以下のようになりましたが、末尾に入力するマクロになりません。すでにある文字を消さずに末尾に追加するにはどうしたらよいでしょうか。
よろしくお願いします。

記録で出来たマクロ

Sub Macro1()

' Macro1 Macro

    ActiveCell.FormulaR1C1 = "★"
End Sub


 こんばんわ。。

 ActiveCell.Value = ActiveCell.Value & "★"

 かな?
 (kei)

keiさん 早速、ありがとうございます。
完璧です。期待通りの結果となりました。
(mutum)


 ちょっと気になったので・・・・。
 >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.