• ベストアンサー

マクロについて

マクロであるプログラムを組んでいますが、うまくいきません。 かなり簡素化していいますと、次のような状況です。 エクセルのcells(1,1)に「9:30」という文字が入っています。 この"9:30"という文字列を読み出そうとするのですが読み出した値は0.39583…という数値になってしまっています。 具体的に言うと、 sub macro1() 開始時刻="9:30" 時刻=cells(1,1) if 開始時刻=時刻 then a=1 endif end というようなプログラム(実際はもう少し複雑ですが)を組んだのですが、どうしても「a=1」にならないので、デバッグ式で見てみると「時刻」の中味は"9:30"ではなく0.39583という数値だったということです。 ちなみにエクセルのそのセルの書式は、「表示形式:時刻、種類13:30」となっています。 どうすれば"9:30"という時刻(文字列)を読み出せるのでしょうか。教えてください。よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

こんにちは。 Cells(1, 1).Text にしましょう。

tarobei
質問者

お礼

遅くなってすみません。 単純ですね…できました! ありがとうございました。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

「:」を入れたがために、9:30は時刻と解釈され、書式を 数値にすると、9.5/24すなわち24時間=1日を1として9時間半は0.39・・・であるというわけです。 日にちも数値を表示形式にすると、1900年1月1日を1とする延べ日数になり初めは面食らいます。 /や-や:はデータ入力で、特別な意味を持っていますので、 良く勉強してください。さて文字列に敢えてするなら、「’」 を先頭につけて入力する。一旦’を付けずに入力してしまうと 表示形式を文字列にしても0.39・・・の文字列になってしまうし、="'" & A1もダメなようです。 if 開始時刻=時刻 の左辺はプログラムで””に囲まれているので文字列になりますが右辺時刻がCells(1,1)なので数値なんで、どんな数値が来ようが不等になります。

tarobei
質問者

お礼

ありがとうございました。 そーいうことだったのですか… 勉強不足ですね。がんばります。

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.2

こんにちは。 これでも良いです。 開始時刻 = TimeValue("9:30") 時刻 = Cells(1, 1)