Excel VBA質問箱 IV

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

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


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

【11194】どなたか教えてください。 おか 04/3/2(火) 13:52 質問
【11195】Re:どなたか教えてください。 Jカーター 04/3/2(火) 13:58 発言
【11202】Re:どなたか教えてください。 おか 04/3/2(火) 14:39 質問
【11207】Re:どなたか教えてください。 Jカーター 04/3/2(火) 15:18 回答
【11208】Re:どなたか教えてください。 おか 04/3/2(火) 15:28 お礼
【11281】Re:どなたか教えてください。 おか 04/3/4(木) 16:43 お礼

【11194】どなたか教えてください。
質問  おか  - 04/3/2(火) 13:52 -

引用なし
パスワード
   最近、VBAの本を購入し簡単なマクロ作りをしているのですが
知人にマクロ作成を依頼され、作成・動作確認し提供したので
すが、私の環境(WindowsXP、Excel2000)では正常動作するのに
知人の環境(Windows98、Excel2000)では正常動作しません。

Workbook.add等は正常に動作するのですが、Worksheets("MAIN")_
.Range("A2").Value = 〜といった、セルの操作が正常に動かない
のです。但し、マクロのエラー等は出力されず正常に終了したかの
様に見えます。
同じExcel2000でも、OSが違うと動作しないのでしょうか?
ちなみに、他のパソコンで知人と同様の環境であった場合も同様に
正常動作しませんでした。

どなたか、お手数ですが何か知ってましたら教えてください。
お願いします

【11195】Re:どなたか教えてください。
発言  Jカーター  - 04/3/2(火) 13:58 -

引用なし
パスワード
   こんにちは。
>セルの操作が正常に動かない
だけじゃ答えようがないと思いませんか?

具体的に
こうしたいがこうなってしまう。
を書かないと考えることさえできませんよ。

【11202】Re:どなたか教えてください。
質問  おか  - 04/3/2(火) 14:39 -

引用なし
パスワード
   すみません。質問するの自体初めてでして、どの様に質問すればいいのかが
よくわからなかったもので。

作成したのは、カレンダー(A列に日付、B列に休日BIT(休日は"1",平日は""))
を持たせたシートにて、日付を検索しその日付の休日BITの逆を返すFanction
プロシージャの戻り値をそのままセルのバリューに設定するものです。
Windows98+Excel2000で実行した結果、正常に終了するのですがバリュー値
が"1"となるはず(平日)のセルのバリューが空白?("")のままとなってしま
います。
Windows2000+Excel2000 及び WindowsXP+Excel2000では正常に動きました。

以下がコードの一部です。
よろしければ、回答お願いします。
足りない情報あれば、また投稿させていただきます。

-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-
Sub MAIN()'一部です

・・・・・・
SheetDate = iY & "/" & iM & "/" & iD
On Error GoTo Err1 '28、29、30日までの月の場合の日付変換時エラー処理へ)
SearchDate = CDate(SheetDate)
Worksheets(SSheetName(i)).Range(GyoPut(iD)).Value = CreateDef(SearchDate)
・・・・・・

End Sub

-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/
Function CreateDef(SerchDate As Date)

Dim c As Object
Dim SearchRow As Integer
Dim Res As Integer

Worksheets("Calendar").Select
With Worksheets("Calendar").Range("A:A")
    Set c = .Find(SearchDate, LookIn:=xlValues)
   If Not c Is Nothing Then
      SearchRow = c.Row
  
  
   If Cells(SearchRow, SearchColumn).Value = "" Then
   Res = "1"
   
   ElseIf Cells(SearchRow, SearchColumn).Value = "1" Then
   Res = ""
   End If

  
 End If
   
End With

CreateDef = Res

End Function

【11207】Re:どなたか教えてください。
回答  Jカーター  - 04/3/2(火) 15:18 -

引用なし
パスワード
   こんにちは。
日付をFindで検索するのは不安定です。
Match関数での検索に変更してみて下さい。

ポイントは
検索値をDouble型にすることです。

関数側でもMain側でも型を変えて下さい。

【11208】Re:どなたか教えてください。
お礼  おか  - 04/3/2(火) 15:28 -

引用なし
パスワード
   回答ありがとうございます。
早速試してみます。

結果は後ほど報告させていただきます。


▼Jカーター さん:
>こんにちは。
>日付をFindで検索するのは不安定です。
>Match関数での検索に変更してみて下さい。
>
>ポイントは
>検索値をDouble型にすることです。
>
>関数側でもMain側でも型を変えて下さい。

【11281】Re:どなたか教えてください。
お礼  おか  - 04/3/4(木) 16:43 -

引用なし
パスワード
   Windows98にて動作良好でした。
Jカーターさん ありがとうございました。

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