Page 220 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼97と2000のデータ型ってちがうのでしょうか MOM 02/10/17(木) 18:00 ┗Re:97と2000のデータ型ってちがうのでしょうか りん 02/10/17(木) 23:34 ┗できました MOM 02/10/18(金) 10:31 ─────────────────────────────────────── ■題名 : 97と2000のデータ型ってちがうのでしょうか ■名前 : MOM ■日付 : 02/10/17(木) 18:00 -------------------------------------------------------------------------
エクセル97でマクロを作って2000で動かしたら型がちがうとエラーがでてしまいます。Getstr3はstringで宣言してあります。 この前で文字と数字を入力するようにしてあります。一致したセルの色をかえようと思ったのですが、97では動作しますが2000だとエラーになります。わかりにくくて申し訳ないですがどなたか教えてください。 num2 = Getstr Do While num2 < Getstr2 + 1 num = 2 Do While num < lastline + 1 Cells(num, num2) If Cells(num, num2) = Getstr3 Then Cells(num, num2).Select Selection.Interior.ColorIndex = Getstr4 Else End If num = num + 1 Loop num2 = num2 + 1 Loop |
MOMさん、こんばんわ。 >エクセル97でマクロを作って2000で動かしたら型がちがうとエラーがでてしまいます。Getstr3はstringで宣言してあります。 2000がないので確認できてませんが、数値と文字列を比較するときは、型を固定してからやったほうがいいですよ(Variantはどっちでも可なので比較しにくい)。 たとえば、 Getstr3は文字列(String)で宣言 Num2,Getstr,Getstr2,Num,lastlineは整数(IntegerまたはLong)で宣言 For num2 = Getstr to Getstr2 For num = 2 to lastline With Cells(num, num2) If Cstr(.Value) = Getstr3 Then .Interior.ColorIndex = Getstr4 End If End With Next Next こんな感じです。 |
りんさん。こんにちは。 ありがとうございます。 Cstr関数なんて思いつきませんでした。 しかもなんかループのところもすっきりとした書き方も教えていただいたので 真似しちゃいました。 |