Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1102 / 13645 ツリー ←次へ | 前へ→

【76205】開いた時の状態に戻すボタンを作成したい hamako 14/10/14(火) 12:44 質問[未読]
【76206】Re:開いた時の状態に戻すボタンを作成したい カリーニン 14/10/14(火) 20:43 発言[未読]
【76208】Re:開いた時の状態に戻すボタンを作成したい γ 14/10/15(水) 22:16 発言[未読]
【76252】遅くなりました!m(__)m再質問(確認)です... hamako 14/10/21(火) 13:13 質問[未読]
【76253】Re:遅くなりました!m(__)m再質問(確認)... 独覚 14/10/21(火) 13:30 発言[未読]
【76254】Re:遅くなりました!m(__)m再質問(確認)... hamako 14/10/21(火) 16:42 発言[未読]
【76255】Re:遅くなりました!m(__)m再質問(確認)... γ 14/10/21(火) 21:54 発言[未読]
【76258】Re:遅くなりました!m(__)m再質問(確認)... hamako 14/10/22(水) 11:16 発言[未読]
【76269】Re:遅くなりました!m(__)m再質問(確認)... γ 14/10/22(水) 21:16 発言[未読]
【76276】Re:遅くなりました!m(__)m再質問(確認)... hamako 14/10/23(木) 18:08 発言[未読]
【76279】Re:遅くなりました!m(__)m再質問(確認)... γ 14/10/23(木) 21:38 発言[未読]
【76280】Re:遅くなりました!m(__)m再質問(確認)... 独覚 14/10/24(金) 9:27 発言[未読]
【76282】Re:遅くなりました!m(__)m再質問(確認)... hamako 14/10/24(金) 12:54 発言[未読]
【76283】たぶんこれで解決できるのでは? γ 14/10/25(土) 23:08 回答[未読]
【76324】すみません。もう少し詳しく教えてください... hamako 14/10/30(木) 14:14 質問[未読]
【76325】これ以上詳しくできません γ 14/10/30(木) 21:42 回答[未読]

【76205】開いた時の状態に戻すボタンを作成したい
質問  hamako  - 14/10/14(火) 12:44 -

引用なし
パスワード
   伝票作成画面をエクセルで作成しています。

ランダムのセルに
関数や計算式等が入っており、関数を利用する場合もあれば、
関数や計算式を消して直接入力する事もあります。

現在は伝票作成するたびに
上書きせずに閉じ、開きなおして次の伝票を作成しています。
この手間をはぶく為に「初期に戻す」などといったマクロボタン
を作成したいのですが
どのようにしたらいいかわかりません・・m(__)m

「入力したセルの値を全てクリア」でよければ解決なのですが、
関数を利用する場合もあれば、関数を消して直接入力してしまう場合も
ある為、このような事はできるのでしょうか??
大変お手数ですがよろしくお願いします。

【76206】Re:開いた時の状態に戻すボタンを作成し...
発言  カリーニン  - 14/10/14(火) 20:43 -

引用なし
パスワード
   テンプレート用のブックを用意しておき、テンプレートブックをコピーして使うようにすれば
いいとおもいます。

【76208】Re:開いた時の状態に戻すボタンを作成し...
発言  γ  - 14/10/15(水) 22:16 -

引用なし
パスワード
   テンプレート案に賛成ですが、どうしてもというなら、
こんな方法もあるでしょう。
testをボタンに登録しておきます。

Sub test()
  Application.OnTime Now + TimeValue("00:00:01"), "my_Procedure"
  ActiveWorkbook.Close False
End Sub

Sub my_Procedure()
  Dim s As String
  s = "ファイルのパス名をここに書く"
  Workbooks.Open s
End Sub

【76252】遅くなりました!m(__)m再質問(確認)で...
質問  hamako  - 14/10/21(火) 13:13 -

引用なし
パスワード
   γ様
テンプレート案がよく理解できず、γ様に教えて頂いた案を試してみました。

確認ですが、
「ファイルのパス名をいれる」の部分は
エクセルファイル名(=売上伝票.xlsです)
までいれますか?

・・・いれてもいれなくてもできるのですが、

いれた場合
→売上伝票.xlsは既に開いています。2重に開くと変更内容破棄されます。
開きますか?という画面がです。

いれない場合
→売上伝票.xlsにアクセスできません。読み取り専用または暗号化されてます。

と出ます。いずれも戻るには戻ってます。
やはりファイル名までいれるのが正解ですか?

それとも何か根本的に間違ってます?か?

マクロの中で
「ファイルのパス名を入れる」というところ以外は
一切いじってないのですが、あってますか?


早々にご返信頂いていたのに時間がたってしまっていてすみません。
また、ばかな質問でしたら、申し訳ないです。
マクロの理解ができなくて、いろいろいじって
ここまでいきついたのですが・・・

【76253】Re:遅くなりました!m(__)m再質問(確認...
発言  独覚  - 14/10/21(火) 13:30 -

引用なし
パスワード
   ▼hamako さん:
どのように実行していますか?

γさんのマクロはボタンに登録した「test」を実行(ボタンをクリック)するとブックを保存せずに
閉じ、一秒後に「my_Procedure」を実行してブックを開きなおすものです。
「my_Procedure」を直接実行しているということはないですか?

もし、「test」の実行でそのようなメッセージが出ているのであれば
>  Application.OnTime Now + TimeValue("00:00:01"), "my_Procedure"
の「TimeValue("00:00:01")」部分を「TimeValue("00:00:02")」と大きくしてみてはどうでしょうか?

なお、パス名部分はブック名も含めてください。

【76254】Re:遅くなりました!m(__)m再質問(確認...
発言  hamako  - 14/10/21(火) 16:42 -

引用なし
パスワード
   【「test」を実行(ボタンをクリック)するとブックを保存せずに
閉じ、一秒後に「my_Procedure」を実行してブックを開きなおすもの】

・・・という解説、ありがとうございますm(__)m
ぼやっと、こうかな、と思っていたものがはっきりしました!
(皆様、お手数おかけしてすみません)

2秒、3秒、4秒、5秒まで試したのですが、
やはり、「2重に開いていますが開きますか?」と出ます。
その後、「はい」でぬければ、いいことなのですが、
色んな人が今後使う書式なので、メッセージが表示されないのがベストなのです。

図形作成でボタンを作成し、右クリックで「マクロの登録」で
testを選んでいるので
my_Procedureを直接実行?はしてないと思います。

【76255】Re:遅くなりました!m(__)m再質問(確認...
発言  γ  - 14/10/21(火) 21:54 -

引用なし
パスワード
   独覚 さん、フォローありがとうございました。

変ですねえ。
以下のコードを標準モジュールに置いて、
ボタンにtestを登録して、実行してみてください。

Sub test()
  Application.OnTime Now, "my_Procedure"
  ThisWorkbook.Close False
End Sub

Sub my_Procedure()
  Workbooks.Open ThisWorkbook.FullName
End Sub

同じかなあ。
私の2010では上記で正常動作するんですがねえ。
待ち時間を長くしていってみて下さい。

イベントプロシージャに何か書いてあるということはないですね?

【76258】Re:遅くなりました!m(__)m再質問(確認...
発言  hamako  - 14/10/22(水) 11:16 -

引用なし
パスワード
   返信ありがとうございます。

すみません。
イベントプロシージャにはコードが入っています。
エクセルファイルにはシートを4つあるのですが、
Sheet2のWorkSheet-BeforeDoubleClickのところ?と
This workBookのGeneralところ?にそれぞれ。。
これが原因ですか???


ちなみに以前頂いたコードの時間を1分としてみたり、
今回頂いたコードでやってみたのですが、
結果(表示される画面)は一緒でした。
エクセル2010です。

【76269】Re:遅くなりました!m(__)m再質問(確認...
発言  γ  - 14/10/22(水) 21:16 -

引用なし
パスワード
   ▼hamako さん:
>イベントプロシージャにはコードが入っています。
>エクセルファイルにはシートを4つあるのですが、
>Sheet2のWorkSheet-BeforeDoubleClickのところ?と
>This workBookのGeneralところ?にそれぞれ。。
>これが原因ですか???
単に、コードがある、というだけでは
それが原因かどうかは判定できません。
コードの内容によりますね。

ところで、
Sub test()
  ThisWorkbook.Close False
End Sub
だけを実行したらどうなるのでしょうかねえ。

【76276】Re:遅くなりました!m(__)m再質問(確認...
発言  hamako  - 14/10/23(木) 18:08 -

引用なし
パスワード
   >ところで、
>Sub test()
>  ThisWorkbook.Close False
>End Sub
>だけを実行したらどうなるのでしょうかねえ。


my_Procedure()
をコードにいれないという事でしょうか?m(__)m

上記の通りそのままコピペで
ボタンに登録した場合は、

実行すると閉じるのみです
(特になにもメッセージもでず、閉じるのみです)

意味を取り違えていたらすみませんm(__)m

【76279】Re:遅くなりました!m(__)m再質問(確認...
発言  γ  - 14/10/23(木) 21:38 -

引用なし
パスワード
   ▼hamako さん:
>上記の通りそのままコピペで
>ボタンに登録した場合は、
>
>実行すると閉じるのみです
>(特になにもメッセージもでず、閉じるのみです)

ああ、そうでしたか。
ブックがなんらかの事情で閉じないので二重に開く警告が
出たのかと思いましたが、そうではなかったようです。

こちらでは希望通りの行動がみられ、
あなたのおっしゃる事象は再現しないので、お手上げです。
力及ばす失礼しました。

【76280】Re:遅くなりました!m(__)m再質問(確認...
発言  独覚  - 14/10/24(金) 9:27 -

引用なし
パスワード
   ▼hamako さん:
とりあえず原因追及の身になりますが、そのファイルはどこにありますか?

もし、ファイルサーバ等においてあるのであればそれをローカル(手元のPC)に
おいた場合でも同じ状況になるでしょうか?

【76282】Re:遅くなりました!m(__)m再質問(確認...
発言  hamako  - 14/10/24(金) 12:54 -

引用なし
パスワード
   返信ありがとうございます。
皆様、ありがとうございます。

サーバーに置いていたので
ローカルに移動して実行してみましたが、
同じでした。(「・・・は既に開いてます・・・開きますか?」と出る)

ちなみに今、標準モジュールのModure1に
登録してあるのは76255で教えて頂いた下記の通りです
(そのままコピペです)

Sub test()
  Application.OnTime Now, "my_Procedure"
  ThisWorkbook.Close False
End Sub

Sub my_Procedure()
  Workbooks.Open ThisWorkbook.FullName
End Sub

一番初めに76208で教えて頂いたのだと、
保存先を変えた時や、各各の保存先によって
コードを変えないといけなく、
上記なら変えなくてよいのでこちらにしました
(・・・この考えあってますか?)

そしてボタンにtestというマクロを登録してます。

【76283】たぶんこれで解決できるのでは?
回答  γ  - 14/10/25(土) 23:08 -

引用なし
パスワード
   ワークシートに=Now()などがあると、
そうした現象になるようです。

開く前に警告表示を抑止すると回避できます。
 Application.DisplayAlerts = False
 Workbooks.Open ThisWorkbook.FullName
 Application.DisplayAlerts = True

【76324】すみません。もう少し詳しく教えてくださ...
質問  hamako  - 14/10/30(木) 14:14 -

引用なし
パスワード
   遅くなりましてすみません。

頂いたコードをどのように組み入れれば
よいでしょうか・・・m(__)m

色々試してみたのですが、よくわからなくて

今標準モジュールのモジュール1に

Sub test()
  Application.OnTime Now, "my_Procedure"
  ThisWorkbook.Close False
End Sub

Sub my_Procedure()
  Workbooks.Open ThisWorkbook.FullName
End Sub


が入ってます。
これを変更しますか?m(__)m

遅くなり、かつ、お手数おかけしますが、
よろしくお願いいたします。

【76325】これ以上詳しくできません
回答  γ  - 14/10/30(木) 21:42 -

引用なし
パスワード
   ▼hamako さん:
>遅くなりましてすみません。
>
>頂いたコードをどのように組み入れれば
>よいでしょうか・・・m(__)m
>
>色々試してみたのですが、よくわからなくて
>
>今標準モジュールのモジュール1に
>
>Sub test()
>  Application.OnTime Now, "my_Procedure"
>  ThisWorkbook.Close False
> End Sub
>
> Sub my_Procedure()
>  Workbooks.Open ThisWorkbook.FullName
> End Sub
>
>
>が入ってます。
>これを変更しますか?m(__)m

そうです、変更するのです。
Workbooks.Open ThisWorkbook.FullName
の代わりに、示した3行で置き換えて下さい。

要は、
・警告を発するオプションを外して(黙らせて)
・開いて、
・警告を発するオプションを、元に戻す
ということをしているのです。

1102 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free