• ベストアンサー

VBAでシリアル値を取得する方法

cj_moverの回答

  • ベストアンサー
  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.1

こんにちは。 Dim s As String   s = "20140810"   MsgBox CLng(DateValue(Format(CLng(s), "0/00/00"))) みたいに、 (Long型に)型変換 > Format(文字列型) > 日付型に変換 > (Long型に)型変換 するのがオーソドックスかと。 シート上の数式の方が少し簡単で、それを応用すると   MsgBox Evaluate("--TEXT(--" & s & ",""0-00-00"")") とか。 以上です。

yorkies
質問者

お礼

何回も型変換する方法は勉強になりました。 ありがとうございました。

関連するQ&A

  • excel vba 一番効率の良い方法を教えてください。

    こんにちは。よろしければ教えてください。 VBAで、テキストデータから読み込んだ日付「20080825」を、 エクセルシートに貼り付ける際(又は貼り付けた後)に、 「2008/08/25」と表示すると同時に「日付」として認識できる形 にしたいのです。(つまりシリアル値に変換したいということに なるのかな?) ○読み込むデータは8ケタの数値です。 ○当然ながら、セル1つにつき1つの日付です。 ○データが多いので、一つ一つ変換すると時間がかかります。   (しかしこの方法しか思いつきません;) ○VBAでもワークシート関数でも…方法は問いません。 一番適している方法を教えてください。 よろしくお願い致します。

  • VBAで情報取得

    Book1のA列の文字をもとに、 Book2(開いていない)からデータを取得する方法は どのような構文になりますか? <Book1> あああ <Book2> あああ  11111  東京 【やりたい事】 Book1に 11111、東京の情報を取得したい。 関数でいえばVLOOKUPです。 VBAでの方法をご存知の方ご教授お願い致します。

  • エクセルVBAでシリアル値で読み込まれてしまう

    こんばんわ! エクセルVBAのユーザーフォームの質問です。 A1セルにある日付データ(yyyy/mm/dd形式)のデータをユーザーフォームのテキストボックスに入れるとシリアル値になってしまいます。 式は普通に aaa.text=range("a1") としています。 同様に時刻もなってしまうのですが、どうしたら通常のyyyy/mm/dd形式(時刻はhh:mm形式)で表示できるでしょうか? アドバイスの程よろしくお願いいたします。

  • Excelで文字列で入力された日付のシリアル値への変換

    エクセルで、セルに文字列で例えば"12/26/06"と入力されたもののシリアル値を得る簡単な方法はないでしょうか。 "2006/12/26"と入力されたものであれば、DATEVALUEという関数でシリアル値を得ることは確認しました。 日付同士の計算で日数を計算するために、必要となっています。 よろしくお願いします。

  • エクセルでシリアル値に変換

    エクセル2003を使っています。 B列に200708(2007年8月という意味です)や200911等の日付が入っています。 これではただの数字であって日付データではありません。 最終的には200708等の数字を日付データに変換して、シリアル値にしたいと思っています。 シリアル値に変換の仕方を教えて頂けないでしょうか? 私がとりあえずやった方法は、C列にRight関数とLeft関数を使って、 2007/08という具合に年と月の間に/をいれました。 これをコピー値貼り付けして、関数から値に変換すると2007/08ではなく、'2007/08と なっており、どうしても数字ではなく、文字列になってしまいシリアル値にできません。 'を空白に置換えしようとしても、置き換えができません。 手法は関数やVBAでも構いませんので、教えて頂けないでしょうか? よろしくお願いします。

  • Excel VBAで読み込んだテキストから任意のデータを取得するには?

    Excel VBAで外部テキストをTextBoxに読み込み、そのテキストの中から任意の場所の数値を取得する(変数に代入する)にはどのようにしたらいいのでしょうか? 例えば、外部テキストが以下のようなかんじだったとします。 ここから--------------------- ・・・ 通勤時間A root 60 root 120 root 45 root 225 root 30 通勤時間B root 90 root 150 root 75 ・・・ ここまで--------------------- このテキストの中から通勤時間Aを検索し、その下の行にある、60,120,45,225,30という数値を変数に代入したいのです。 テキストをTextBoxに読み込む方法はわかりますが、数値の検索方法がわかりません。どうすればいいでしょうか? (テキストをTextBoxに読み込まなくても数値を検索する方法があればそちらの方法もお願いします)。

  • エクセルVBAまたは関数でファイル検索する方法

    お世話になります。 概要 エクセルVBAまたは関数でファイルの検索をする方法を教えて下さい。 詳細 ディスクにたくさんの楽曲ファイルがあります。 その中に目的のファイルがあるか否かをエクセルのVBAまたは関数を使って検査したいです。 具体的には、エクセルシートのA列に曲名が入力してあります。 例として、A1に「青い珊瑚礁」と曲名がテキストで入っています。 さて、これと同じファイル、またはフォルダが、ディスクの中に存在しているか否か、の結果をB1に表示したいと思います。 出来ますでしょうか? ディスクの全フォルダに対して検索を掛けると大変なので、検索先のフォルダは絶対パス指定して、それ以外のフォルダは検索しなくていいものとします。 もし、一致するフォルダ、ファイルを探すのは大変、というのであれば、 指定したフォルダに存在するすべてのファイル、フォルダの名称を「テキストファイルとして書きだす」方法を教えてください。 そのテキスト文字列に対して検索をすれば同じ結果が得られますので。。。 よろしくお願いします。

  • エクセルVBAでPDF化できますか??

    Excel VBAで取得したデータをPDF変換ソフトを使わずPDF化するプログラムはあるのでしょうか? インターネットで「VBA PDF変換」等と様々な形で検索をかけてみたのですが、ヒットしません。。。 既存のプログラムは、取得したデータをエクセルに出力し、メールを送信するものなのですが、更にPDF化してメール送信したいのです。 どなたかアドバイスよろしくお願いいたします! <PC環境> Windows XP Pro Ver.2002 Excel 2003 SP3 Adobe Reader8.1.2

  • エクセルVBAで

    いつもお世話になっています。 エクセルVBAでセルのデータを読み込んでテキストファイルを出力するプログラムを書いています。 その際に、セル内のデータで「00」や「01」などのデータを読み込んで、そのままテキスト出力させたい場合関数の指定をStringにした場合「0」や「1」と出てしまいます。 「00」や「01」でテキスト出力させる方法を教えてください。 よろしくお願いいたします。

  • Excelの日付でテキストとシリアル値が混在

    Excelのデータで、 2009年8月12日 2013年5月1日 のように日付が入力された列から「2009」「2013」のように西暦年数(4桁)のみを抜き出して別の列に記入しようとしています。 しかし、データ上、テキストとして入力されたものとシリアル値で入力されたものが混在しております。 このような混在した状態からでもうまく抜き出せる方法(関数の組み合わせ)を考えています。どなたか詳しい方、ヒントをいただけると幸いです。 (テキストの場合はleft関数で、シリアル値の場合はyear関数で抜き出せるような関数を組めればと思っていますが、うまく思いつきません。) よろしくおねがいします!