• ベストアンサー
  • 困ってます

Excel 2000 のマクロで、日付や文字列を変換する方法について

Excel 2000 のマクロを使用して、以下のようなことをしようとしているの ですが、方法がよく分かりません。 1.日付タイプのセルに「2008/8/2」と入力されている日付を、数値タイプの   「20020802」に変換したい。 2.文字列タイプのセルに「横浜市西区1-2-3ABCホームズ」と入力されている   文字列を「横浜市西区1-2-3ABCホームズ」に変換したい。   (半角を全角に変換したい) よろしくお願いします。

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数1274
  • ありがとう数2

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

  • ベストアンサー
  • 回答No.2
  • maruru01
  • ベストアンサー率51% (1179/2272)

再びmaruru01です。 とりあえず1つのセルを変換するコードです。 複数セルの場合は適当にループを回して下さい。 1.日付→数値 Sub Macro1()   Dim DateVal As Date   Dim LngVal As Long   DateVal = Cells(1, 1)   LngVal = Year(DateVal) * 10000 + Month(DateVal) * 100 + Day(DateVal)   Cells(1, 1).Select   Selection.NumberFormatLocal = "0"   Selection.Value = LngVal End Sub 2.半角→全角 Sub Macro2()   Dim temp As String   temp = Cells(1, 2)   temp = StrConv(temp, vbWide)   Cells(1, 2).Value = temp End Sub

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございました。おかげで助かりました。

関連するQ&A

  • EXCELの日付データを文字列に変換したい

    EXCELの和暦形式の日付データを文字列に変換する方法を教えてください。 たとえば、H17.9.2をそのまま文字列に変換したいのです。 最初から文字列データとして入力すれば問題ないのですが、日付データ(標準)として入力されたデータを書式→セル→文字列で変換するとシリアル値に変わってしまいます。(H17.9.2→38597) どうしたらよいのでしょうか。お願いします。

  • 文字列を日付データに変換 マクロ

    他の方の質問等を参考にしているのですが、どうもうまくいかないので教えてください。 エクセル2007を使ってるのですが、 マクロで文字認識している日付を日付データ認識させたいのです。 H10.1.4やH19.12.14等が2000件くらい文字列として入力されている データを日付認識させて、経過年数や経過日数などを求めようと思ってます。 マクロで一括変換する方法または、変換した日付データを隣の列に入力できる方法がございましたら教えて頂きたく思います。 お願いします。

  • 文字列を日付に変換

    エクセル2003を使っています。 あるセルに'2009/6/19等が入っています。 頭に'が入っているため、日付とは認識せずに文字列として認識している為、困っています。 どうやれば、日付に変換できるでしょうか? 関数やVBAでも良いので、やり方を教えて頂けないでしょうか?

その他の回答 (1)

  • 回答No.1
  • maruru01
  • ベストアンサー率51% (1179/2272)

こんにちは。maruru01です。 1."日付タイプのセル"というのは、書式が日付のセルという意味ですか。そのセルに"20020802"を入れたら、"#######"になってしまいますよ。 それとも、書式設定自体も変更したいのでしょうか。 ちなみに、別のセルに変換結果を表示するなら、マクロじゃなくて、関数で出来るんですけどね。 1.「=YEAR(A1)*10000+MONTH(A1)*100+DAY(A1)」 2.「=JIS(A1)」 やっぱり、マクロでそのセル自体を書き換えたいのでしょうか。

共感・感謝の気持ちを伝えよう!

質問者からの補足

早急のご回答ありがとうございます。 1."日付タイプのセル"というのは、書式が日付のセルという意味ですか。 >>はい、そういう意味です。 それとも、書式設定自体も変更したいのでしょうか。 >>はい、変更したいです。 やっぱり、マクロでそのセル自体を書き換えたいのでしょうか。 >>はい、データとして残したいので・・・

関連するQ&A

  • "/"がある文字列が勝手に日付型になってしまい困っています

    "/"がある文字列が勝手に日付型になってしまい困っています VBAのセルの書式設定について質問があります。 マラソンの順位や個人情報をまとめた表があり、その表がカテゴリ別に半角スペースで区切られているデータをセルごとにまとめています。 順位は"1/3467"のように"個人の順位/参加者"という形式なのですが、カテゴリ毎に分割してセルに文字列を入れると"Jan-67"となっており日付型として認識されてしまいます。 (個人順位が13位以降は"13/3467"といった形式に戻ることから、最初の1位から12位までの間だけだと思われます) そこで、2つほど対策をしてみました。 1,セルの書式設定を変更する  →一通り確認してみましたが、どれも変更できませんでした   ユーザー定義の使い方次第で可能かもしれませんが、分かりませんでした。 2,"/"の位置で分割して、個人順位と参加者に分けて管理する。  →"3467/1/1"という文字列に変換されているため、"/"で分割しても参加人数は認識できますが、   個人順位が日付のような形式になってしまいます。 順位の形式は変えても変えなくても構いませんので、文字列を日付型に変換せずに保管する方法をご存知でしたら、ご教授いただけないでしょうか。 よろしくお願いいたします。

  • エクセル関数で文字列の中のスペースの有無を調べたい。

    エクセル関数について教えてください。 全てが半角のはずの文字列・A1セルについて、下記について調べたいです。 1.同列(A列)の他のセルに入力されている文字列とのダブリチェック(同じ文字列がないかの確認)     *ダブリがある場合"ダブリ"表示 2.A1の文字列中のスペースの有無        *スペースがある場合"スペース"表示 3.A1の文字列中に全角が混ざっていないか      *全角がある場合"全角"表示 1.については、 =IF(COUNTIF(A:A,A1)>=2,"ダブリ","") の関数を使用してチェックが出来ると思うのですが、 2.については、関数TRIM 及び 置換での削除方法、3.については、 関数ASC での半角変換 しか手段が見つかりませんでした。 上記のものをマクロを組んでいる中に組み込みたいので、出来れば、上記3つの結果をひとつのセル(C1)に表示させたいのですが、可能でしょうか? *A1セルに上記3つが当てはまる場合、C1セルに "ダブリスペース全角" と表示させたい。 どれについて引っかかっているのかがわかればいいので、記号などに置き換えてもかまいません。 可能な限り調べては見たのですが、私の知識ではどうにもなりませんでした。 もし、いい案などがあればご紹介してください。 宜しくお願いいたします。

  • 日付を文字列にする方法

    日付を文字列に変換する方法を教えてください。 2008/03/21 --> Mar.21 Mar.21は、完全に文字列です。セルの中では、左詰となります。 宜しくお願いいたします。

  • Excelで日付の書式を指定文字列に変換

    Excelで日付の書式を指定文字列に変換 セルから日付情報を得て、文字列でyyyymmddに変換するには、どのようにすればいいでしょうか。VBA・関数のどちらでもかまいません。よろしくお願いします。

  • 文字列を分割したい。

    (A1)のセルにある文字列は、数個の文字列をスペース(半角)を開けて配置しています。 (2行目以下も同様の多種の文字列があります。) サンプル 「学校 東京 神奈川県横浜市 ABC アメリカ」 これを、 1行目のセルに関数を用いて、 (B1)に「学校」 (C1)に「東京」 (D1)に「神奈川県横浜市」 (E1)に「ABC」 (F1)に「アメリカ」 と表示したいのです。 関数で処理できましたら、その関数式を教えてください。 関数で処理できない場合は、マクロを教えていただければありがたいです。 よろしくお願いします。 ※エクセルの「区切り位置]機能を試しましたが、うまくいかないようです。

  • エクセルでのマクロを使った特殊な文字分け

    エクセルのマクロを使った処理について、初心者の小生にご教授ください。 今A列に文字列(半角全角混在)が入力されています。 この文字列の左から20文字までを同行のB列のセルに、21文字から40文字までを同行のC列のセルに、残りを同行のD列のセルに分割してコピーするマクロを作りたいと思っています。 しかし、文字数のカウントの仕方が特殊で悩んでいます。 カウントのルールは 1.半角は1文字、全角は2文字としてカウントする。 2.全角の場合はその文字の前と後ろに半角の『"』を入力し、それ自体も1文字としてカウントする。 3.全角が2個以上連続する場合は、その塊の前と後に『"』を入れる。(例:文字列が『あい』だとしたら、『"あ""い"』ではなく『"あい"』なるため、8文字ではなく6文字とカウントする。) というルールです。 文字を分けるときに、分ける境目に文字が来てしまう場合(たとえば全角が20文字目と21文字目となる場合)は、右のセルに入力しなくてはいけません。 また、全角の前後にある『"』は全角とひとくくりとして考えるため、分けることはできません。(例:B列の最後が『あ』となって、C列の最初の文字が、その全角の後ろの『"』となることはできない。) というややこしいルールとなっています。 文字列を左から順に確認していき、パターンで条件分けする方法も考えたのですが、処理が膨大になってしまい、こんがらがってしまいました。 何かすっきりとした解決方法はないものでしょうか。 ややこしい条件で分かりにくくで申し訳ございませんが、お知恵をお借りしたいと思います。 よろしくお願いいたします。

  • Excelのマクロ教えてください

    初めまして。 以下のようなマクロが欲しいのですが、知識不足のため、どうしたらよのかわからず困っております。 ウェブで色々と調べてやってみましたが、期待どおりの結果を得られませんでした。 どなたかお教えいただけたら幸いです。 行いたいのは、例えば、   セルA1に文字列『1. abc』が入っているとき、先頭の番号『1』の部分だけ取り出し   (または . 以下を除いて)、セルA1の内容を数字型の『1』に書き換える という動作です。 複数のセルをドラッグして選択し、マクロのショートカットで一発変換 できたら…と思っております。 変換したい部分のセルの内容はすべて、『1. abc』のように、文字列で 「1~7の数字」、「半角の.」、「半角スペース」、「英単語」 の順になっています。 簡単なことなのかもしれませんが、自分にはさっぱりでした… どなたか回答をお願いいたします。m(_ _)m

  • エクセルで英数のみを半角に変換するマクロ

    エクセル2003を使っています エクセルで英数のみを半角に変換するマクロの作り方を教えてください。 予め複数のセルを選択しておいて、それらに含まれる文字列の英数のみを半角に(カタカナは全角のまま)変換したいのです。 以前他のサイトで同様の機能のユーザー関数の作り方は見つけたのですが、マクロにする方法がわかりません。 よろしくお願いします。

  • EXCELで、文字列を任意の文字数毎に分割するには

    ≪やりたい内容と条件≫ ◆EXCELで、文字列を任意の文字数毎に分割したいです。 ◆文字列は、全角・半角・記号を含みます。 ◆1つのセルが半角80桁という制限があり、その上限を超えると、右の次のセルに流し込まれるようにしたいです。(A1は元の文字列1500桁くらい、以降B1,C1,D1,E1・・・という具合に流し込み) ≪試した内容≫ MIDB関数を見つけ挑戦しましたが、1つ目のセルはうまくいきますが、その後が出来ません。例えば、文字列が「・・・・・・abcあいうえお」となっていた場合、B1は「・・・・・・abcあいう」、C1は「 お」(「お」の前は、半角スペース)となります。 何かよい方法はないでしょうか。 一度に出来ないようであれば、A1-B1で残りの文字列が表示できれば、それ以降はまた関数を入れて一つ一つやっていきたいと思っています。 よろしくお願いいたします。

  • エクセル 文字列に使われている文字のカウント

    セルの文字列に使われている文字を数えるにはどのようにしたら良いでしょうか?文字列は半角の英数字記号です。 例) 11111 -> 1 sdsdsd -> 2 xyzxyz -> 3 abc777 -> 4 g&id#d -> 5 qwerty -> 6