Excel VBA質問箱 IV

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

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


33276 / 76733 ←次へ | 前へ→

【48680】Re:関数の値の共有
発言  ichinose  - 07/5/1(火) 20:35 -

引用なし
パスワード
   ▼勉強中 さん:
こんばんは。
プロシジャー内で宣言したローカル変数は、

原則としてプロシジャーが実行されている間、値が保持されます。

プロシジャー終了後は開放されます。

よって、このままだとプロシジャーAでdtBfr1にデータをセットしても

プロシジャーBで参照しているdtBfr1とは別物です。


Private dtBfr1 As String

>Sub A()
  Dim dtBfr1 As String '←この行は、削除
>  Range("z5").Select
>  dtBfr1 = ActiveCell.Value  ←dtBfr1は更新前のデータです。
>  ActiveWorkbook.RefreshAll  ←ここでデータ更新します。(外部データ)
>  Application.OnTime Now + TimeValue("00:00:20"), "B" ←「Sub Bを呼びま                              す」
>End Sub
>
>
>Sub B()
>  Dim dtAftr1 As String
>  Range("z5").Select
>  dtAftr1 = ActiveCell.Value   ←dtAftr1は更新後のデータです。
>  If dtBfr1 <> dtAftr1 Then    ←データが変更されている場合は変更後の                   データを音声で読みあげたいのですが、                   ここでdtBfr1の値が「empty」となってし                   まいます。
>    Application.Speech.Speak (dtAftr1)
>  End If
>End Sub

としてみてください。

確認していませんが、この仕様だとシートのChangeイベントは
使えませんか?
3 hits

【48671】関数の値の共有 勉強中 07/5/1(火) 7:11 質問
【48672】Re:関数の値の共有 ichinose 07/5/1(火) 7:15 発言
【48673】Re:関数の値の共有 勉強中 07/5/1(火) 10:39 質問
【48680】Re:関数の値の共有 ichinose 07/5/1(火) 20:35 発言
【48686】Re:関数の値の共有 勉強中 07/5/1(火) 21:49 お礼

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