• ベストアンサー

Excelのマクロで値の一部だけ取り出したい

Excelのマクロを使って別のcsvファイルの決まった場所にある数字を取り出したいのですが、 全部取り出すことができても一部だけというのができません。 csvファイルにある数字は日付を表す5桁で、その内末尾2桁だけをExcelのセルに貼り付けたいのです。 下記のように自分でやってみたところ5桁そのままは何とかできました。 Sheets("総計").Select Range("E1").Value = "=tori.csv!R3C2" Range("E1").Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False right関数を使って更に他のセルに貼り付けて2桁だけ取る方法しかないでしょうか? もっとシンプルに2桁の数字だけ貼り付ける方法があれば、教えていただきたいのです。 どうかよろしくお願い致します。

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

  • ベストアンサー
  • xls88
  • ベストアンサー率56% (669/1189)
回答No.1

ちょっと飛躍し過ぎるかも知れませんが、下記でどうでしょうか。 一度試してください。 Sheets("総計").Range("E1").Value = _   Right(Workbooks("tori.csv").Sheets("tori").Range("B3").Value, 2)

noname#69711
質問者

お礼

xls88さん、どうもありがとうございます。 夜中に何度か起きて試したのが何だったのかと思える程・・・ ちょっと言葉が見つからないです。 全く希望していた通りです。 どうもありがとうございましたm(__)m

noname#69711
質問者

補足

xls88さん、お礼に入れ忘れてしまいました。 もっと頑張りますので、これからもどうかよろしくお願い致します。

その他の回答 (1)

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

セルの計算式だけでも充分対応可能ですが、マクロとのことですので・・ ご質問に書いてある通り、Right関数を使えばよいのでは?  d = Right(Sheets("総計").Range("E1").Value, 2) もとのデータがどのような内容か不明ですが、一度セルに値を記入しているので、その内容によっては、エクセル側で日付データと認識してシリアル値に変換される可能性があります。 その場合は、違う結果になってしまう場合があるかも。 セルの書式を文字列に制御しておくか、日付データをFormatで文字変換して日付だけ取り出すなどのどちらかに確定しておいた方が良いでしょう。

noname#69711
質問者

お礼

fujillinさん、どうもありがとうございます。 一度セルに値を記入した場合には形式も気にする必要があるのですね。 すっかり忘れていました。 どうもありがとうございました。 今後とも、どうかよろしくお願い致しますm(__)m

関連するQ&A