• ベストアンサー

エクセル コードを教えてください。

シート内にいくつかのボタンを用意しています。 各ボタンに文字を入力していますが、ボタンを押したときに、その文字をセル内に入力するコードを教えていただきたいのです。 いま、現在は、下記のようにしています。 これだと、コードをボタンの分だけ作らなければなりません。 もし、ボタンに入力されているものを入力するコードなら一つだけでいいと思いますが、どのように変更すればよいでしょうか? よろしくおねがいします。 Sub 角丸四角形2_Click() ActiveCell.Value = "あいうえお" End Sub

質問者が選んだベストアンサー

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

下記でいけると思います。ご参考まで。 ActiveCell.Value = ActiveSheet.Shapes(Application.Caller).TextFrame.Characters.Text

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VBAプログラムについて

    VBAプログラムを本を見ながら作成していますが、はっきりいって素人です。 本に載っていないこととなるとちんぷんかんぷんで、いくつかあるプロシージャのどのプロシージャ内に記入したら良いのか分からないし、新しいプロシージャをどこに記入して良いのか分かりません。 例えば、 ----------------------------------------------------------- Private Sub CommandButton1_Click() ActiveCell.Value = TextBox1.Value ActiveCell.Offset(0, 1).Value = TextBox2.Value ActiveCell.Offset(0, 2).Value = TextBox3.Value ActiveCell.Offset(0, 3).Value = TextBox4.Value ActiveCell.Offset(0, 4).Value = TextBox5.Value ActiveCell.Offset(0, 5).Value = TextBox6.Value ActiveCell.Offset(0, 6).Value = TextBox7.Value ActiveCell.Offset(0, 7).Value = TextBox8.Value ActiveCell.Offset(0, 8).Value = TextBox9.Value ActiveCell.Offset(1, 0).Activate End Sub Private Sub CommandButton2_Click() Unload Me End Sub Private Sub Label1_Click() End Sub Private Sub UserForm_Click() End Sub Private Sub UserForm_Initialize() Range("A2").Activate End Sub ---------------------------------------------------------- テキスト入力フォームをいくつか作っており、コマンドボタン1とコマンドボタン2で入力ボタンと閉じるボタンにしています。   このプログラムでは、入力ボタンをクリックすることでデータが入力されて、入力された列のすぐ次の列の最初のセルがアクティブな状態になります。 (1)データ入力済みのエクセルシートにおいて、アクティブな状態にしたセルや列を削除したい場合、どこにどのように書けば良いのでしょうか? (2)データ入力が一度に終わらない時、途中の任意の列から入力を始めたい場合はどこにどのように書けば良いのでしょうか? 本に書かれていることは丸写しできますが、ちょっとでも違うと壁にぶつかってしまいます。 独学で勉強する時に良いと思われる方法はどんな方法なのでしょうか? おこがましいですが素人も分かりやすい説明をして頂けると助かります。 宜しくお願いします。

  • Excelマクロでundoのボタンを作成

    Excel2013使用です。 現在、アクティブなセルに日付を入力する為に日付入力ボタン(DateButton)を作成しています。 内容は下記の通りです。 Private Sub DateButton_Click() ActiveCell.Value = Date End Sub ですが、間違ってボタンを押した場合に元に戻す事が出来ません。 日付入力undoボタンを作成し、間違ってボタンを押した場合に元に戻す機能を追加したいと思います。 どうかご教授ください。

  • 【Excel初心者です】複数セルに同一コマンドを実行したい

    お世話になっています。 Excel2003のVBAでコマンドボタンを貼り付け、 コードに Private Sub CommandButton1_Click() ActiveCell = ActiveCell + 1 End Sub と入力しました。 この状態で、現在アクティブなセルに+1の値を入れることができるのですが、選択中のセルすべてに+1の値を入れることは可能でしょうか? 恐れ入りますがご教授願います。

  • エクセル マクロ 出力と移動

    Private Sub CommandButton1_Click() Range("B8").Value = 1856 Range("B9").Value = "abc" Range("B11:D13").Value = "abc" End Sub (1)シート1にボタンを作成して出力できるようにしたのですがシート2に出力したい (2)(1)の続きでボタンを押した時、文字が入力後にそのシートに飛ぶようにしたいのですが どうすればいいでしょうか?

  • 【エクセル】ActiveCellはなぜNullではないのでしょうか?

    私は今まで新規のシートを挿入した際のActiveCellは、Nullだと思っていたのですが Sub Empty空白なら() If ActiveCell.Value = Empty Then Debug.Print "空白セルです" End Sub Sub Null空白なら() If ActiveCell.Value = Null Then Debug.Print "空白セルです" End Sub Sub Null空白なら2() If IsNull(ActiveCell.Value) = True Then Debug.Print "空白セルです" End Sub VBAでこのコードを実行すると Emptyの方だけ「空白セルです」となりました。 (1)なぜ空白でもNullだと反応しないのでしょうか? (2)NullとEmptyの違いはなんですか? ご教授よろしくお願い致します。

  • エクセルでプロシージャが終了しません。

    ユーザーフォームのボタンをクリックしたら、特定のセルに現在の時刻を入力するマクロを作っています。 入力するところまではうまくいったのですが、プロシージャが終了しないので保存することができません。 どこが違うのかわからないので、わかる方よろしくお願いいたします。 Private Sub cmd1_Click() Dim hiduke As Date Dim hiduke2 As Integer hiduke = Now() hiduke2 = CInt(Day(hiduke)) If chk1.Value = True Then Cells(4, 1).Select Do Until ActiveCell.Value = hiduke2 ActiveCell.Offset(1, 0).Select Loop ActiveCell.Offset(0, 2).Value = hiduke Else Cells(4, 1).Select Do Until ActiveCell.Value = hiduke2 ActiveCell.Offset(1, 0).Select Loop ActiveCell.Offset(0, 8).Value = hiduke End If End Sub

  • エクセル マクロ 特定の文字の色を変更

    Private Sub CommandButton6_Click() MsgBox Mid(ActiveCell, InStrRev(ActiveCell, "⇒") + 1) End Sub このようなマクロがあり 選択しているセルの最後から⇒まで部分をMsgboxで表示してくれますが この文字の色を変更したい場合はどうすればいいでしょうか?

  • エクセル ユーザーフォーム 変数の定義

    エクセルでユーザーフォームを作成しました。 その中で郵便番号・住所を入れるテキストボックスがあるのですが、 郵便番号を入れると次のボックスに住所を表示させるのがかなり難しく、 自分で作成するほどのスキルは到底ないので、 下記のページにあったサンプルを利用して作成させて頂きました。 http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_130_050.html このページのサンプルだとシートのセルに飛ばないので、 シートのセルに飛ぶように下記のコードを入れました。 するとコマンドボタンを押すと 「変数を定義してください」 とエラーメッセージが出ました。 最初から自分で作成したフォーム上で下記のコードで実行した場合は うまくいったので行けるかと思ったのですが甘くありませんでした。 今までネットで調べたりしてマクロ等を使っていましたが、 変数は触ったことがなく未知の領域です。 こんな知識のまま手を突っ込むのは無謀かと思うのですが、 どなたかご教授いただけないでしょうか? 宜しくお願いいたします。 問題のコードはこちらです。 Private Sub cmdTouroku_Click() Range("B65535").End(xlUp).Offset(1).Select ActiveCell.Value = txtHinichi.Value ActiveCell.Offset(0, 1).Select ActiveCell.Value = txtKname.Value ActiveCell.Offset(0, 1).Select ActiveCell.Value = txtKumisu.Value ActiveCell.Offset(0, 1).Select ActiveCell.Value = txtName.Value ActiveCell.Offset(0, 1).Select ActiveCell.Value = txtParty.Value ActiveCell.Offset(0, 1).Select ActiveCell.Value = txtPartyp.Value ActiveCell.Offset(0, 1).Select ActiveCell.Value = txtSougei.Value ActiveCell.Offset(0, 1).Select ActiveCell.Value = txtMember.Value ActiveCell.Offset(0, 1).Select ActiveCell.Value = txtVisiter.Value ActiveCell.Offset(0, 1).Select ActiveCell.Value = ListBox1.Value ActiveCell.Offset(0, 1).Select ActiveCell.Value = txtPstyle.Value ActiveCell.Offset(0, 1).Select ActiveCell.Value = TXT_ZIPCODE.Value ActiveCell.Offset(0, 1).Select ActiveCell.Value = TXT_JUSYO.Value ActiveCell.Offset(0, 1).Select ActiveCell.Value = txtJusho2.Value txtKname.Value = "" txtKumisu.Value = "" txtName.Value = "" txtParty.Value = "" txtPartyp.Value = "" txtSougei.Value = "" txtMember.Value = "" txtVisiter.Value = "" txtPstyle.Value = "" TXT_ZIPCODE.Value = "" TXT_JUSYO.Value = "" txtJusho2.Value = "" UserForm1.txtHinichi.SetFocus End Sub

  • エクセルのマクロコードに付いて教えて下さい。

    下記のマクロコードがありますが、 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$A$1" Then Exit Sub x = Target.Value With Application .ScreenUpdating = False .EnableEvents = False .Undo y = Target.Value Target.Value = x + y .EnableEvents = True .ScreenUpdating = True End With End Sub セル位置の指定を変更する場合は、どの様に 書けば良いのですか? このコードですと、セルA1の入力指定でなっていますが A1~A5までとか。A1、B1,C1とかにする場合はどの様に 書けば良いか教えて下さい。 マクロに付いて、殆ど知識が無いものですので 出来れば、分かり易い説明でお願いします。 宜しくお願いします。

  • ユーザーフォームテキストボックスの文字制限

    ダブルクリックでフォームを開くようにしてます。下記のままでしたらテキストボックスに何行でも入力できてしまい、転記先のセルは4行までしか表示ができません。テキストボックスに4行以上入力しコマンドボタンをクリックしたときにメッセージが出てセル値を取得したときに戻ればいいと考えています。説明が不十分ですがよろしくお願いします。 Private Sub UserForm_Initialize() TxtA.MultiLine = True TxtA.EnterKeyBehavior = True GYOU = ActiveCell.Row TxtA.Value = Range("c" & GYOU).Value End Sub Private Sub CommandButton1_Click() GYOU = ActiveCell.Row Range("c" & GYOU).Value = UserForm1.TxtA.Value Unload Me End Sub

専門家に質問してみよう