勘定奉行21を使っています。
総勘定元帳をエクセルにエクスポートして、編集することが多いのですが、日付が文字列になってしまって困っています。これを正しい日付として認識させたいです。
エクセルに出力される日付の例
16 430
16 8 1
161020
など、和暦で表示されていて、月日は一桁の場合は半角スペースが入るようになっています。
スペースが入っているものは文字列として、3番目のようにスペースがないものについては161020という数値として認識されます。
現在行っている方法
A列に上記が入っているとして、B列に数式を入れます。
1)A列を選択し、置換えで半角スペースを"0"(ゼロ)にします。
2)B列に空白の列を挿入します。
3)B列に以下の式を入れ、下までコピーします。
=IF(A6="","",DATEVALUE("H"&MID(A6,1,2)&"/"&MID(A6,3,2)&"/"&MID(A6,5,2)))
4)B列を書式を選択して貼り付けで値にします。
5)A列を削除します。
6)A列の書式設定でユーザー設定「ge.mm.dd」と入れます。
※B列より右側には15行ほど他のデータが入っています。
※この日付がA6から下へ続いているのは毎回同じなのですが、出力する時によって全体の行数は増減します。
※数式のIF部分については、値の貼り付けにした時に、エラーが残ってしまうので入れてあります。
※H16.01.20の様な表示形式にしたいです。
今のことろは、上記をマクロで記録して、貼り付け用のシートを作って毎回使えば良いか…と考えているのですが、どうもスマートな気がしません。
他に何か良い方法が思いつく方がいらっしゃいましたら、宜しくお願い致します。
ちなみにVBAは分かりません(^^;
No.1ベストアンサー
- 回答日時:
ファイル名:Book1.xls、シート名:Sheet1と仮定。
データを、A1を始点に貼り付けて、以下のをマクロを実行すると上手くいきませんか?
Sub test()
Dim wbthis As Workbook
Dim wsthis As Worksheet
Dim l As Integer
Dim rdata As Range
Dim hiz As Date
Set wbthis = Workbooks("Book1.xls")
Set wsthis = wbthis.Worksheets("Sheet1")
wsthis.Range("A:A").Replace What:=" ", Replacement:="0", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=True, MatchByte:=True
For l = 1 To wsthis.Range("A1").End(xlDown).Row
Set rdata = wsthis.Cells(l, 1)
If rdata.value <> "" Then hiz = DateValue("H" & Mid(rdata.Value, 1, 2) & "/" & Mid(rdata.Value, 3, 2) & "/" & Mid(rdata.Value, 5, 2))
rdata.Value = Format(hiz, "ge.mm.dd")
Next
End Sub
ありがとうございます!まさにその「空白のセルは無視する」的なところが分からなかったんです。うまくいきました。意味の分からない部分ばかりですが…、勉強していこうと思います。すごく役にたちました。ありがとうございました(^^)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) データ入力規則リスト 空白を無視 3 2022/07/13 15:11
- Excel(エクセル) マクロ作成初心者です。CSVファイルの日付データについて 3 2022/12/14 06:02
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- Visual Basic(VBA) Excel(VBA) 特定の条件に該当する行の値、書式を同じセルにコピ&ペーストしたいです 1 2022/05/21 18:18
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Excel(エクセル) アウトラインの小計のやり方 1 2023/03/20 11:51
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで離れた列を選択して...
-
「段」と「行」の違いがよくわ...
-
VLOOKUPの列番号の最大は?
-
LEFT関数とIF関数の組み合わせ...
-
エクセルで住所を県と市・郡と...
-
Excelの行数、列数を増やしたい...
-
CSVファイルの「0落ち」にVBA
-
えABのある列って
-
エクセルマクロの組み方
-
データシートビューのタイトル...
-
エクセルで最初の行や列を開け...
-
エクセルマクロPrivate Subを複...
-
別のブック最終行最終列の次へ...
-
エクセル マクロ 範囲指定で...
-
Alt+Shift+↑を一括で行うには、...
-
エクセル マクロ 範囲の値を上...
-
土日の列幅の自動変更を教えて...
-
エクセルマクロで表の途中の集...
-
VBA
-
エクセルでセル12個間隔で合...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで離れた列を選択して...
-
VLOOKUPの列番号の最大は?
-
「段」と「行」の違いがよくわ...
-
LEFT関数とIF関数の組み合わせ...
-
VBA 指定した列にある日時デー...
-
CSVファイルの「0落ち」にVBA
-
エクセルで複数列の検索をマク...
-
Excelの行数、列数を増やしたい...
-
エクセルマクロの組み方
-
エクセルマクロPrivate Subを複...
-
リストからデータを紐付けしたい
-
エクセルのソートで、数字より...
-
エクセルで住所を県と市・郡と...
-
VBAで別ブックの列を検索し、該...
-
VBA
-
Excel文字列一括変換
-
エクセル 重複 隣の列 一番...
-
列方向、行方向の定義
-
Alt+Shift+↑を一括で行うには、...
-
VBAで結合セルを転記する法を教...
おすすめ情報