Windows7 64bit 上にある、MSOffice2010 32bit版で作ったVBAコードのうち、以下の部分が、macにあるoffice2011 for macでは正しく機能しません。windowsでは正しく動きます。何が原因で、どうすればmacでも動くようになるでしょうか?
事情により、コーディング作業はすべてwin上でのみ行い、現場の方に送ってmac上で動かしてもらうという手探り状態です。
'これは、シート「あいうえお」の、o列の日付がmd と sd の間ではない行を削除するもの
dim lastRow as integer, md, sd as Date
md = DateSerial(2016,5,10)
sd = DateAdd("d", 6, md)
lastRow = ThisWorkbook.Worksheets("あいうえお").Cells(30000, 1).End(xlUp).row
cnt = lastRow
For cnt = lastRow To 2 Step -1 '1行目はタイトルなので無視
If IsDate(ThisWorkbook.Worksheets("あいうえお").Range("O" & cnt).Value) = True Then
If CDate(ThisWorkbook.Worksheets("あいうえお").Range("O" & cnt).Value) < md Then
ThisWorkbook.Worksheets("あいうえお").Rows(cnt).Delete
Else
If CDate(ThisWorkbook.Worksheets("あいうえお").Range("O" & cnt).Value) > sd Then
ThisWorkbook.Worksheets("あいうえお").Rows(cnt).Delete
Else
End If
End If
End If
Next cnt
↑
以上です。最初は、大外のIf IsDate(ThisWorkbook.Worksheets("あいうえお").Range("O" & cnt).Value)というのを入れてなかった(O列には日付しか入ってないし、windowsではそれで問題なかった)のですが、macでは、なぜか「型が一致しません」というようなエラーが出たので、このifも挿入しました。
このコードをmacで動かすと、一行も削られることなく出てきてしまいます。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/04/13 01:51 編集
2016/04/20 18:20
2016/04/20 23:03 編集