- 締切済み
vbaでボタンをクリックして上書き保存したい
vba初心者です。 エクセルにボタンを作成して、クリックすると保存したいのですが、 ボタンを作成して、マクロの登録を開き Sub 保存() ActiveWorkbook.Save End Sub と作成したのですが実行できません。 どうしたらいいのでしょうか? よろしくお願いします。
- kinako13_7
- お礼率50% (1/2)
- オフィス系ソフト
- 回答数2
- ありがとう数1
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- hallo-2007
- ベストアンサー率41% (888/2115)
コード以外の問題ではないでしょうかね。 例えば、 ファイルが読み取り専用だとか フォルダーに変更の権限がないとか
ActiveWorkbook.Save では、まずそのブックをアクティブにしてからじゃないと動作しません。 マクロを登録するブックが決まっているなら、 ThisWorkbook.Save ではどうでしょうか。
関連するQ&A
- コマンドボタンにマクロを登録させる方法
エクセルでマクロを作成しました。マクロを実行させる為に「コントロールツールボックス」にある「コマンドボタン」で作ったボタンに登録をしたいのですがうまくいきません。 以前はコマンドボタンを作ったら、自動的に「マクロの登録」ダイアログボックスが出てきたのですが、何故か出なくなってしまいました。オートシェイプで作成したボタンなら、右クリックすると「マクロの登録」があるのですが、コマンドボタンを右クリックしても「マクロの登録」がありません。以前のように、自動的に「マクロの登録」ダイアログボックスを表示させる方法があったら教えてください。 また、ボタンをダブルクリックするとVBAが開いて以下のようなコードの記載がありますが、ここにコードを記載すればボタンをクリックしたときにマクロが実行されるのでしょうか?VBAはまったく解りませんので、どのように記載したらいいのかわかりません。実際に記入して教えてください。お願いします。マクロ名は、日本語で「結果一覧」としました。(「Private Sub CommandButton1_Click()」と「End Sub」の間に、マクロの記述部分をコピーして、貼り付けたら、ボタンをクリックしたときにマクロは実行できたのですが、もっと簡単にマクロ名を記述したら実行できるような気がするのですが、簡単に記述して実行できる方法があったら教えてください。) OSはWindows ME、Excelは2002 です。よろしくお願いします。 コマンドボタンをダブルクリックしたときのコードです。 Private Sub CommandButton1_Click() End Sub
- ベストアンサー
- オフィス系ソフト
- 最初の1回のみにボタンクリックでマクロ実行する
Excel2007でマクロ作成中の初心者です。 1)Aブックに次のマクロを書いてます。 Sub データをクリアする() Dim list, SheetName Const EXCEPT_NAME = "計算 番号 明細" For Each SheetName In ActiveWorkbook.Worksheets If InStr(EXCEPT_NAME, SheetName.name) = 0 Then Sheets(SheetName.name).Activate クリア範囲 End If Next End Sub -------------------------------- Sub クリア範囲() Range("AM13:AQ13").Select Selection.ClearContents End Sub 2)上のマクロは、Bブック上で実行します。 Bブックのマクロ実行は、最初のボタンクリック1回のみです。 (このBブックが閉じられ保存されるまで) なぜなら、クリアした部分に、新しいデータを入れるからです。 誤って2回目のボタンクリックでも、マクロ実行しないようにしたいです。 せっかく入力した新しいデータを消去しないためです。 このようなコマンドボタンを作るにはどうしたらよろしいでしょうか?
- ベストアンサー
- Visual Basic
- Excel 名前を付けて保存のVBA
名前を付けて保存画面を表示して、自分でファイル名を入力して保存をしたいのですが、 以下で名前を付けて保存画面は表示されますが、 実際に保存をクリックしてもファイルが作成されませんでした。 保存されるVBAを教えてください。 Sub test() Save_Filename = "c:\" Save_File = Application.GetSaveAsFilename(Save_Filename, _ FileFilter:="Excelファイル,*.xls") End Sub
- ベストアンサー
- その他MS Office製品
- 開いているエクセルを上書き保存するマクロがしりたいのですが
開いているエクセルを上書き保存するマクロがしりたいのですが 単純に ActiveWorkbook.Save ActiveWorkbook.Close では ウィンドウだけ閉じてエクセルの画面は残ってしまいます どうしたら 全て閉じるのか知りたいのですが、よろしくお願いします。
- ベストアンサー
- Windows XP
- エクセルVBA フォームへ動的に貼り付けたボタンのクリックイベントを検知する方法を教えてください
(1)excel97にのVBAでフォームを作成します。 デフォルトの場合はUserForm1という名前がつきます。 (2)標準モジュールとして下記のコードを作成します。 Sub ボタンを付けて表示() Dim btn As Control With UserForm1 ’ボタンを"button"という名前で作成します Set btn = .Controls.Add("Forms.CommandButton.1", "button") ’ボタンの設定をします With btn .Top = 5 .Left = 5 .Height = 20 .Width = 200 .Caption = "push me!" End With ’フォームの設定をし、表示します .Height = 60 .Width = 220 .Show End With End Sub (3)マクロを実行するとフォームが表示されます。 そこでこのボタン("push me!"と表示されています)をクリックします。 このクリックを検知してマクロを動かしたいのですが可能でしょうか? なおUserForm1に下記のコードを付けてみたのですがクリックは検知できませんでした。 Private Sub button_Click() MsgBox "You click the button." End Sub
- ベストアンサー
- オフィス系ソフト
- エクセルのマクロで保存して終了が出来ない
あるエクセルファイルにて、VBAで Sub 保存して終了() ActiveWorkbook.Save ActiveWorkbook.close End Sub というマクロを作成したのですが、1回目は正常に動いたのですが次からは、そのマクロを動かしても画面が一瞬点滅するだけで、上書き保存も終了もしません。 それで、ファイルを別の名前をつけて保存してその、別の名前で保存したファイルで、また上のマクロを動かすと1回目は正常に動くのですが、やはり次に開くと動かなくなります。 因みに他のマクロは正常に動作し、この保存して終了させるマクロだけが変なのです。 マクロの書き方を変えて以下のようにしてもだめでした。 Workbooks("ナントカ.xls").Close savechanges:=True やはり、何回書き方を変えても保存して終了させることだけが出来ません。普通にマクロを使用せず手動ですることは出来るのですが…。 分かりにくい説明ですみませんが、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- VBAで指定したボタンを押す
VBA初心者ですが、コマンドボタンを作ってボタンを押すと Ctrl + : を実行して時間を記入するようにしたいのですがうまく動作させることができません。 マクロの記録機能で試してみたのですが以下のようになりボタンを押してもうまく動作しませんでした。 Sub Macro1() ActiveCell.FormulaR1C1 = "16:33" End Sub 簡単な文例やヒントなどありましたら宜しくお願いいたします。
- ベストアンサー
- その他(学問・教育)
- Excel VBAエラー”マクロシートに対する・・
Excel VBAを勉強している者です。VBAプログラムで Sub Iro1() ・・・ End Sub Sub Iro2() ・・・ End Sub という処理のプログラムを作成しエクセルシートにボタンを作りマクロ登録をしようとすると ”マクロシートに対する参照を指定ください”とエラーが出ます。 すみませんが、解決方法を教えてください。
- 締切済み
- その他MS Office製品
- コマンドボタンを2回目クリックでエラー発生する
windows7 Excel2007でマクロ作成の初心者です。以下の点で困ってます。ご指導お願いします。 次のコマンドボタンを実行すると、最初のクリックでは実行できるのに 同じボタンを再度クリックするとエラーがでます。 エラーが出ないようにするにはどうしたらよろしいでしょうか。 ちなみに、ブックはA、B、Cの3個です。 Private Sub CommandButton8_Click() ActiveWorkbook.Close SaveChanges:=True On Error Resume Next Workbooks(2).Activate 'Bブックをアクティブに Resume Next Unload Me 評価.Show End Sub
- ベストアンサー
- Visual Basic
- ExcelVBAのコードで上書き保存
お世話になります。 ExcelVBAのコードで上書き保存時 「実行時エラー1004 ファイルを保存できません」 となり止ってしまいます。 (自分のPCではエラーも発生せず保存できるのですが 友人のPCでは上記のエラーが発生する状況です) コードはExcel起動時にExcel自体を非表示にし フォームで入力等の処理を行い、上書き保存→Excel終了としています。 Private Sub Workbook_Open() Application.Visible = False 'Excel非表示 userform1.Show End Sub Private Sub CommandButton2_Click() 'userform1 ActiveWorkbook.Save '上書き保存 Application.Quit 'Excel終了 End Sub 何とか解決する方法はないでしょうか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
お礼
ご連絡遅くなって申し訳ございません。 やはりファイル側の問題だったようです。 ありがとうございました。
補足
早々のご回答ありがとうございます。 変更して実行してみると、 End Subが黄色くなって 「コードの実行が中断されました」 となってしまいました。 どういうことなのでしょうか?