Excel VBA質問箱 IV

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

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


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

【81137】変数内容の保持 質問者 19/12/13(金) 18:05 質問[未読]
【81138】Re:変数内容の保持 γ 19/12/13(金) 20:59 発言[未読]
【81140】Re:変数内容の保持 γ 19/12/13(金) 23:29 発言[未読]
【81139】Re:変数内容の保持 Jaka 19/12/13(金) 21:20 発言[未読]
【81141】Re:変数内容の保持 よろずや 19/12/14(土) 13:04 発言[未読]
【81142】Re:変数内容の保持 質問者 19/12/16(月) 10:03 発言[未読]
【81143】Re:変数内容の保持 質問者 19/12/16(月) 13:28 お礼[未読]
【81144】Re:変数内容の保持 γ 19/12/17(火) 12:19 発言[未読]

【81137】変数内容の保持
質問  質問者  - 19/12/13(金) 18:05 -

引用なし
パスワード
   シート1にお決まりの書式や式を書き込んで置いて、シート追加ボタンを押したときに、このシート1のコピーシートと裏の計算のために新しく追加と成るシートのの名前は『シート1のコピーシートの名前+裏』と言う形の名前にしたいのですが、コピーシートの名前を新しく追加になったシートへ上手く引き渡せません。
シート名の変数を上手く引き渡す方法を教えて下さい。

因みに標準モジュールにはシートコピーの命令を以下の様に書いて有ります。

Public 名前 As String
-------------------------
Sub シートコピー()
  Sheets("Sheet1").Select
  Sheets("Sheet1").Copy After:=Sheets(1)
  名前 = ActiveSheet.Name
  MsgBox "戻り前 " & 名前
End Sub

又ワークシートのイベントには

Private Sub Workbook_NewSheet(ByVal Sh As Object)
  
   シートコピー
   MsgBox "戻り後= " & 名前
  
End Sub

此処で『名前』と言う変数はコピーシートを作成した時点ではあるのですが
サブプロシージャーから戻ったイベントの中では無くなっています。
この『名前』変数を保持する方法を教えて下さい。
よろしくお願いします。

【81138】Re:変数内容の保持
発言  γ  - 19/12/13(金) 20:59 -

引用なし
パスワード
   Subプロシージャ"シートコピー"を
Functionプロシージャに変更して、
 シートコピー = 名前
として、返り値にすれば情報を戻すことができます。

説明がわかりにくいですね。
ですから、詳細(例えばいつ名前をつけるのか)は不明ですが、
とりあえずの回答をしておきます。

【81139】Re:変数内容の保持
発言  Jaka  - 19/12/13(金) 21:20 -

引用なし
パスワード
   Sub mmmaa()
MsgBox 名前
End Sub

を追加して、新規シートをを挿入した後に上を実行するとしっかり
Sheet1 (2)
を保持してました。
by win7 & Excel2007

因みに10分以上は、保持してました。(途中で閉じたためそれ以降不明)

【81140】Re:変数内容の保持
発言  γ  - 19/12/13(金) 23:29 -

引用なし
パスワード
   Public変数の宣言を読み落としていました。失礼しました。

【81141】Re:変数内容の保持
発言  よろずや  - 19/12/14(土) 13:04 -

引用なし
パスワード
   昔のバージョンで「変数宣言の強制」を使っていると
そのような現象がありました。
以来、手打ちで「Option Explicit」と書いてます。

【81142】Re:変数内容の保持
発言  質問者  - 19/12/16(月) 10:03 -

引用なし
パスワード
   やはり、標準モジュールのサブプロシージャーとプライベイトサブプロシージャーの間ではパブリック宣言を行っても変数の供用は行えないのでしょうか?
何か変数の受け渡しを行う方法は無いでしょうか?

【81143】Re:変数内容の保持
お礼  質問者  - 19/12/16(月) 13:28 -

引用なし
パスワード
   私の大きな間違いでした。
パブリック変数の宣言位置の間違いで、変数保持がブック内で保たれていませんでした。
ご回答願った皆様、陳腐な質問ですみませんでした。

【81144】Re:変数内容の保持
発言  γ  - 19/12/17(火) 12:19 -

引用なし
パスワード
   なにか解決したようですが、
Public変数の有効期間は絶対的なものではないという記事を
Microsoftが出しています。
ワークシートに保持するのが確実だと、MS社は言っていますね。
ご参考まで。

ht tp://web.archive.org/web/20090909235324/ht tp://support.microsoft.com/kb/408871/ja

2カ所にスペースを入れているので修正してください。
(セキュリティの関係でhtxxをそのままでは投稿できない決まりのようです)

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