Excel VBA質問箱 IV

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

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


2538 / 13646 ツリー ←次へ | 前へ→

【67372】MacにてWorkSheetChangeイベントが発生しない TAC 10/11/29(月) 9:59 質問[未読]
【67384】Re:MacにてWorkSheetChangeイベントが発生... Jaka 10/11/30(火) 10:11 発言[未読]
【67388】Re:MacにてWorkSheetChangeイベントが発生... TAC 10/11/30(火) 13:14 発言[未読]
【67391】Re:MacにてWorkSheetChangeイベントが発生... Jaka 10/11/30(火) 14:08 発言[未読]
【67404】Re:MacにてWorkSheetChangeイベントが発生... TAC 10/12/1(水) 11:34 お礼[未読]

【67372】MacにてWorkSheetChangeイベントが発生し...
質問  TAC  - 10/11/29(月) 9:59 -

引用なし
パスワード
   WorkSheet Changeイベントについてなのですが、
MacintoshコンピュータにてWindowsで作成したVBAファイルを動かしますと、
大体の動作はうまく行えるのですが、
入力規則で「リスト」形式にしてるセルの値を変更しても
WorkSheet_Changeイベントが発生してくれません。

これはMac版VBAの仕様なのでしょうか?
また何か回避策がありませんでしょうか?

以上、どうぞよろしくお願いいたします。

【67384】Re:MacにてWorkSheetChangeイベントが発...
発言  Jaka  - 10/11/30(火) 10:11 -

引用なし
パスワード
   ▼TAC さん:
>WorkSheet Changeイベントについてなのですが、
>MacintoshコンピュータにてWindowsで作成したVBAファイルを動かしますと、
>大体の動作はうまく行えるのですが、
>入力規則で「リスト」形式にしてるセルの値を変更しても
>WorkSheet_Changeイベントが発生してくれません。

これは、Mac版で使われているVBAバージョンがWin版に比べて古いからじゃないかと。
Win版の古いやつだと(07)入力規則の方がセル参照だと、チェンジイベントが発生しません。
元の値に あ,い,う,え,お と直接書くと反応します。
これ以外の解決策として再計算イベントを利用するがあるけど、Macで試した事がありません。

MacだとここのAppleさんがいいかも。
ht tp://excelfactory.net/excelboard/excelvba/excel.cgi

【67388】Re:MacにてWorkSheetChangeイベントが発...
発言  TAC  - 10/11/30(火) 13:14 -

引用なし
パスワード
   Jaka様

ご回答いただきましてありがとうございますm(__)m

>これは、Mac版で使われているVBAバージョンがWin版に比べて古いからじゃないかと。

作成したWinのほうはExcel2000で、Macのほうは2004なのですが、どうも
うまくいきません。

>元の値に あ,い,う,え,お と直接書くと反応します。
>これ以外の解決策として再計算イベントを利用するがあるけど、Macで試した事がありません。

再計算イベント(Calculate)について書かれてるHPも参照してやってみたのですが
どうもだめでした。
私ももう直接入力しか手段はないかと思い、リスト入力形式をなくしたものを
作成し、あとはマニュアルの配布で運用していこうと考えています。

>MacだとここのAppleさんがいいかも。
>ht tp://excelfactory.net/excelboard/excelvba/excel.cgi

情報ありがとうございます!
一度そちらにもおじゃまして情報がないか探してみます。

【67391】Re:MacにてWorkSheetChangeイベントが発...
発言  Jaka  - 10/11/30(火) 14:08 -

引用なし
パスワード
   >私ももう直接入力しか手段はないかと思い、リスト入力形式をなくしたものを
>作成し、あとはマニュアルの配布で運用していこうと考えています。
う〜ん、「元の値に あ,い,う,え,お と直接書くと反応します。」
これの意味が通じてないみたいですね。
マクロで書くとこういうことなんですけど。

Sub Macro1()
  With Range("A1").Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
    xlBetween, Formula1:="あ,い,う,え,お"
    .IgnoreBlank = True
    .InCellDropdown = True
    .InputTitle = ""
    .ErrorTitle = ""
    .InputMessage = ""
    .ErrorMessage = ""
    .IMEMode = xlIMEModeNoControl
    .ShowInput = True
    .ShowError = True
  End With
End Sub

>作成したWinのほうはExcel2000で、Macのほうは2004なのですが、どうも
>うまくいきません。
ですから、Macの方は、2004でもVBAのバージョンが古いらしいですので、
動かないわけです。
上のように入力規則のリストを直接記入すれば動くと思います。
(文字数は、255文字まで)


再計算をつかった場合。

適当なセルに
=now()
を書いておく。

で、シートモジュールはこう。

Private Sub Worksheet_Calculate()
If ActiveCell.Address(0,0) = "A1" Then
  MsgBox ActiveCell.Value
End If
End Sub

【67404】Re:MacにてWorkSheetChangeイベントが発...
お礼  TAC  - 10/12/1(水) 11:34 -

引用なし
パスワード
   Jaka様

ご回答いただきましてありがとうございます。
すみません、ご指摘の通りきちんと内容を把握できておりませんでした。

詳しく解説いただいたおかげで理解できましたし、
教えていただいたやり方でプログラムもうまく作成することができました。

大変助かりました。
以上、ありがとうございました。

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