- ベストアンサー
Excelマクロでundoのボタンを作成
Excel2013使用です。 現在、アクティブなセルに日付を入力する為に日付入力ボタン(DateButton)を作成しています。 内容は下記の通りです。 Private Sub DateButton_Click() ActiveCell.Value = Date End Sub ですが、間違ってボタンを押した場合に元に戻す事が出来ません。 日付入力undoボタンを作成し、間違ってボタンを押した場合に元に戻す機能を追加したいと思います。 どうかご教授ください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17068)
- real beatin(@realbeatin)
- ベストアンサー率82% (174/211)
関連する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)データ入力が一度に終わらない時、途中の任意の列から入力を始めたい場合はどこにどのように書けば良いのでしょうか? 本に書かれていることは丸写しできますが、ちょっとでも違うと壁にぶつかってしまいます。 独学で勉強する時に良いと思われる方法はどんな方法なのでしょうか? おこがましいですが素人も分かりやすい説明をして頂けると助かります。 宜しくお願いします。
- ベストアンサー
- Visual Basic
- VBA コマンドボタン 頭に0がでない
各ボタンに以下を入れる Private Sub CommandButton1_Click() Selection.Value = Selection.Value & "1" End Sub Private Sub CommandButton2_Click() Selection.Value = Selection.Value & "2" End Sub . . Private Sub CommandButton10_Click() Selection.Value = Selection.Value & "0" End Sub Private Sub CommandButton11_Click() Selection.Value = Selection.Value & "." End Sub 0.1と入力しても0.1が表示できなく、1となってしまいます。 また.1と入力しても0.1でなく、1になってしまいます。 どうすれば良いでしょうか?
- ベストアンサー
- Visual Basic
- Excel VBAフォーム 登録ボタンの作成方法
いつもお世話になっています。 初めて、Excelのフォームで入力画面を作りました。 複数の項目があって、それを最後に[登録]ボタンをクリックで 表に入れたいのですが、一度にまとめて実行する方法が分かりません。 アドバイスよろしくお願いいたします。 Private Sub cmd_1() Dim i As String If man.Value = True Then ActiveCell = man.Caption End If If woman.Value = True Then ActiveCell = woman.Caption End If ActiveCell.Offset(0, 1).Select End Sub Private Sub cmd_2() Dim i As String If man.Value = True Then ActiveCell = Yes.Caption End If If woman.Value = True Then ActiveCell = No.Caption End If ActiveCell.Offset(0, 1).Select End Sub Private Sub cmd_downlist() Dim ListNo As Long ListNo = group.ListIndex ActiveCell.Value = group.List(ListNo, i) ActiveCell.Offset(0, 1).Select End Sub Private Sub cmd_comment() ActiveCell = comment.Text ActiveCell.Offset(1, -3).Select End Sub
- 締切済み
- Visual Basic
- マクロでカレンダーから選択したセルに日付を入力したい
こんばんは。最近VBAの勉強を始め参考書を見ながら下記プログラミングを使い、選択したセルにカレンダーから日付をダブルクリックで入力したいのですが、記述が分かりません(○○○部分)。入力するセルは行や列を一行毎ずらしたりせず、自由に選択してダブルクリック入力したいのです。今の記述だと、1つのセルだけ入力した後、次のセル選択が出来ず困っています。ご指導宜しくお願い致します。 Private Sub Calendar1_Click() ActiveCell.Value = Calendar1.Value ○○○○ End Sub ----------- Private Sub UserForm_Initialize() Calendar1.Value = Data End Sub ----------- Private Sub Sheet1_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Column <> 1 Then Exit Sub UserForm1.Show Cancel = True End Sub
- ベストアンサー
- オフィス系ソフト
- エクセル マクロ 出力と移動
Private Sub CommandButton1_Click() Range("B8").Value = 1856 Range("B9").Value = "abc" Range("B11:D13").Value = "abc" End Sub (1)シート1にボタンを作成して出力できるようにしたのですがシート2に出力したい (2)(1)の続きでボタンを押した時、文字が入力後にそのシートに飛ぶようにしたいのですが どうすればいいでしょうか?
- ベストアンサー
- Excel(エクセル)
- マクロで作ったボタンのサイズが小さくなる
エクセルにて、以下の2種類のボタンを作成しました。 1、ボタンを押すとプリントアウトへ進む (Private Sub ×△□_Click() Application.Dialogs(xlDialogPrint).Show End Sub) 2、ボタンを押すとあるセルの数値をインクリメントする (Private Sub inc_Click() Sheets("○×△").Select Cells(6, 13) = Cells(6, 13) + 1 End Sub ) これらのマクロを作成しテストした際は、全く問題なく動作しました。 しかし、同エクセル内の別シートに参照となるデータを加えながら 普段使っているのですが、たまにボタンを押して操作すると、 ボタンのサイズが少し小さくなってしまうのです。 (ボタンとは、自分で作成したコマンドボタンです) プリントアウトやインクリメントを繰り返していくと、 どんどんボタンが小さくなり、クリックできないくらいのサイズに なってしまいます。なぜこのような事が起こるのでしょうか。 自分でいろいろ試してみたつもりなのですが、 上記現象が再現する場合と再現しない場合があり、 どういう時に再現しているのかも掴めません。 もし、心当たりのある何かがございましたら、 ぜひ教えてください。 宜しくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセル マクロ 特定の文字の色を変更
Private Sub CommandButton6_Click() MsgBox Mid(ActiveCell, InStrRev(ActiveCell, "⇒") + 1) End Sub このようなマクロがあり 選択しているセルの最後から⇒まで部分をMsgboxで表示してくれますが この文字の色を変更したい場合はどうすればいいでしょうか?
- ベストアンサー
- Excel(エクセル)
- エクセル コードを教えてください。
シート内にいくつかのボタンを用意しています。 各ボタンに文字を入力していますが、ボタンを押したときに、その文字をセル内に入力するコードを教えていただきたいのです。 いま、現在は、下記のようにしています。 これだと、コードをボタンの分だけ作らなければなりません。 もし、ボタンに入力されているものを入力するコードなら一つだけでいいと思いますが、どのように変更すればよいでしょうか? よろしくおねがいします。 Sub 角丸四角形2_Click() ActiveCell.Value = "あいうえお" End Sub
- ベストアンサー
- オフィス系ソフト
- マクロでエラー
Excelのチェックボックスについて ご質問致します。 デザインの都合上、 チェックボックスで「いずれか1つを選べる」ように マクロを作成しています。 1つの質問に対して3つの選択肢があります。 ・Aボタンをチェックしたら、BとCのチェックを外してセルの名前「質問1」に0を入力 ・Bボタンをチェックしたら、AとCのチェックを外してセルの名前「質問1」に1を入力 ・Cボタンをチェックしたら、AとBのチェックを外してセルの名前「質問1」に3を入力 ということをしたいです これが12問ぐらいあります。 例えば質問1はこんな感じで作成しましたが エラーで、Excelが終了してしまいます。 どの辺がおかしいのかご指摘頂けると嬉しいです Private Sub Q1_A_Click() ActiveSheet.Q1_A.Value = True ActiveSheet.Q1_B.Value = False ActiveSheet.Q1_C.Value = False ActiveSheet.Range("質問1").FormulaR1C1 = 0 End Sub Private Sub Q1_B_Click() ActiveSheet.Q1_A.Value = False ActiveSheet.Q1_B.Value = True ActiveSheet.Q1_C.Value = False ActiveSheet.Range("質問1").FormulaR1C1 = 1 End Sub Private Sub Q1_C_Click() ActiveSheet.Q1_A.Value = False ActiveSheet.Q1_B.Value = False ActiveSheet.Q1_C.Value = True ActiveSheet.Range("質問1").FormulaR1C1 = 3 End Sub
- ベストアンサー
- Excel(エクセル)
- (VB初心者) VB起動時既に起動されているExcelの情報
VisualBasic 6.0 初心者です。 既に起動しているExcelの後にVisualBasicを立ち上げた場合、 既に起動しているExcelの情報を得ることが出来るのでしょうか? やりたい事は Excel起動⇒VB起動⇒Excelのセルを選択⇒そのセルに入力されている値 を取得。 VB起動⇒Excel起動の場合はActiveCellの値を取得出来たのですが 既に起動しているExcelの場合 エラー になってしまいます。 お手数ですが、ご教授願います。 Private Sub コマンド1_Click() MsgBox ActiveCell End Sub 'Form_Load時にこれを実行しないと開いたExcelのアクティブセル値を得られない?? Private Sub Form_Load() MsgBox ActiveCell End Sub
- ベストアンサー
- Visual Basic
お礼
回答いただきありがとうございます。 期待したとおりの結果を得る事が出来ました。 初めてExcelのマクロに挑戦しているのですが、この機会にどんどん勉強します。