確定申告医療費控除!マイナンバーカードを作ってもクソにも役に立たなかった!結局エクセルのマクロで対応!金を掛けるならもっと使えるものにしてほしいぞ!

スポンサーリンク
050-VBA

超ド底辺地方公務員の管理人です。

公務員ですが、マイナンバーカードは大嫌いです。

ちなみにマイナバー制度自体は悪くないと思っています。

ただ、コストの掛かるカードは不要かと・・・

カードが無くても、IDとPASSと生態認証でカードがなくても十分です。

マイナンバーカードは確定申告の医療費控除では役に立たなかった

さて、せっかくマイナンバーカードを作ったので・・・

確定申告の医療費控除をやってみようかと思ったのですが・・・

上手くいきませんでした。

管理人のやり方が悪いのかもしれませんが、とてもユーザーフレンドリーではありません。

クソでした。

しかも令和5年1月10日時点で、昨年の10月分までしか、データが取り込めませんので・・・

結局11月~12月分は、手入力が必要です。

結局全然スマートじゃないんですよね。

マイナポータルから医療費情報をダウンロードしても使えなかった

ということで・・・

従来通り、国税庁のエクセル様式に入力して確定申告することにしました。

国税庁の医療費集計フォーム(エクセル)はこちらのHPから

ただ、マイナンバーカードがあればマイナポータルから、10月分までの医療費情報がダウンロードできるので、それを使ってコピペしようとしたのですが・・・

これまた、フォーマットが全然ことなる形式なので、そのままコピーできない・・・

全くのクソです。

国のクソ役人どもは、こういう事は考えないのでしょうかね?

普通の人間の感覚であれば・・・

マイナポータルからダウンロードした医療費情報(CSV)をそのままe-taxで添付できるとか・・・

コピペして使えるとか考えそうなのですが・・・

そのどちらもできません。

クソすぎます。

スポンサーリンク

CSVデータを医療費集計フォームに貼り付けるには結局マクロでデータを整形する必要がある

結局ですが・・・

マイナポータルからダウンロードした医療費情報(CSV)を国税庁の医療費集計フォーム(エクセル)に貼り付けるには、データをマクロで整形する必要があります。

マクロを作るくらいだったら・・・

領収書を見ながら手で入力した方が早い説もあるのですが・・・

管理人だけでも、年30回ほど病院に行っていますし・・・

家族の分も含めると、相当な行数になるので、諦めてマクロを組むことにしました。

ただし、マクロを組んだとしても・・・

10月分までの医療費情報しかないので、11月~12月分は結局手入力する必要があります。

マクロのコードは次のとおりです。

マクロを空で記録して、Visual Basic Editorで必要な部分を貼り付けてください。

Attribute VB_Name = "Module1"
Sub Macro1()
'
' Macro1 Macro
'

'*************ここから*********
'
'CSVをマイナポータルからダウンロード
'CSVの読み込みはUTF-8
'最初の診療年月までの行は消す
'マクロ実行後に確定申告のエクセルに貼り付ける。
'確定申告時には前年の10までしかダウンロードできない為、2か月分は手で追加する


Cells(1, 1).Select

'名前を取得
Dim myname As String
myname = Cells(9, 2)


'最初の診療年月の行を取得
Dim cntrow As Long
Dim firstrow As Long

cntrow = 1

Do
    If Cells(cntrow, 1) = "診療年月" Then
        firstrow = cntrow
        Exit Do
    Else
        cntrow = cntrow + 1
    End If
Loop


'E1セルからカラムを設定
    Cells(1, 5) = "氏名"
    

Dim cntcolumn As Long
cntcolumn = 6

    If Cells(cntrow, 1) = "診療年月" Then
        
        Do While Cells(cntrow, 1) <> ""
            Cells(1, cntcolumn) = Cells(cntrow, 1)
            cntrow = cntrow + 1
            cntcolumn = cntcolumn + 1
            
                If Cells(cntrow, 1) = "診療年月" Then
                    Exit Do
                End If             
        Loop
    Else
        End If
        

'医療情報を行にコピー
Dim maxrow As Long
Dim startrow As Long
Dim copyrow As Long
Dim copycolumn As Long

maxrow = Cells(Rows.Count, 1).End(xlUp).Row
startrow = firstrow
copyrow = 1
copycolumn = 6


Do While startrow <= maxrow
    If Cells(startrow, 1) = "診療年月" Then
        copycolumn = 6
        copyrow = copyrow + 1
        Cells(copyrow, 5) = Cells(9, 2)
        Cells(copyrow, copycolumn) = Cells(startrow, 2)
            startrow = startrow + 1
    Else
        Cells(copyrow, copycolumn + 1) = Cells(startrow, 2)
            startrow = startrow + 1
            copycolumn = copycolumn + 1
    End If
Loop

'*************ここまで*********

End Sub
スポンサーリンク

マクロの動きについては、次の動画で確認できます。

ダウンロードしたCSVデータをマクロで整形した後に・・・

国税庁の医療費集計フォーマット(エクセル)に必要なデータを適宜貼り付けてください。

マイナポータルからダウンロードできる医療費情報(CSV)は何に使えるのか?

いったい、マイナポータルからダウンロードできる医療費情報(CSV)は何に使えるでしょうか?

管理人には使用方法が全く分かりません。

ブログランキングにご協力ください!
ブログランキング・にほんブログ村へ

分かる方がいたら教えてください。

あとこれといった使い道がないなら・・・

何故、国税庁と連携しないのでしょうか?

まったく意味不明です。

税金の無駄遣いですよね?

もしかしたら【e-taxとマイナポータルを連携】した際のXML形式のデータをCSVに変換しただけ???

なのかもしれませんが・・・

マイナンバー関連の情報連携は、基本的にはXMLデータを使っていると認識していますが・・・

XMLデータって視覚的に人には理解しにく構造なんですよね。

HTMLで表を作るには【tableタグ・trタグ・tdタグ】を使いますが・・・

票をHTMLのタグで見たところで・・・

視覚的には全く分かりません。

これと同じだと思うんですよね・・・

せめて、行と列にコンバートしてCSVにしてもらわないと・・・

分からんのですよ・・・

ここら辺がマイナポータルがポンコツたる所以だと個人的には思います。

ブログ開設に必要なドメイン取得、サーバーレンタル、ASPの登録等は、こちらのサイトから!

コメント

  1. けむろめ より:

    てるぞうさま
    マクロを組んでいただきありがとうございます。
    早速活用…と思いましたが、csvの変換結果が動画のようになりません。
    具体的には、インポートの際に区切り記号で「コンマ」を選択しておられますが、これを適用すると、「医療費の総額」欄などで、4桁以上の数値(*,***)が含まれる場合、数値も2列に分離されて変換されるため、収拾がつかなくなってしまいます。デフォルトのカスタムを選ぶとコンマでつながった状態ですし(例)医療費の総額(円),**,*** 
    変換の際に何か設定で必要なことはありますでしょうか。
    連休中に10か月分だけでも準備できれば(交通費も入力しておきたいですし)非常に助かります。
    ご教示よろしくお願いします

    • てるぞう より:

      コメントありがとうございます。
      とりあえず動作は確認しましたが問題ありませんでした。
      1.マイナポータルから医療費のCSVをダウンロードします。
        マイナポータル → わたしの情報 → 医療費通知情報 → 年限範囲選択 → 形式を選択してダウンロード → CSV
      2.空のマクロファイル(xlmsx)を作成し、
      3.空のマクロを記録し、
      4.標準モジュールにコードを貼り付けます。
      5.エクセルのデータタブ → テキスト又はCSVから → 1でダウンロードしたCSVを選択
       → 元のファイル(UTF-8を選択)・区切り記号(コンマのまま) → データ型検出(最初の200行に基づくのまま)
       → 読み込みを選択
      6.column1とcolumn2の2列のデータが読み込まれる
      7.マクロを実行
      8.同じシート内のE列からデータができるかと・・・
      下記URLでマクロ付のエクエルをダウンロードできます。
      CSVをエクセルで1回でも開くとデータが壊れるので、
      ダウンロードしたCSVは、何もせずに、
      Utf-8で読み込んでください。

      https://drive.google.com/file/d/1ByLEUbd55rQRBavkdCkXhivAP-Jb6YAj/view?usp=sharing

  2. HowToに感謝 より:

    初めまして、横からコメント失礼します。
    通常の方法だと表として全く使えないCSVに困り果てていたところ、こちらのサイトに辿り着き、けむろめ様と同じ状況で右往左往しておりました。
    解決できたので、管理人様への感謝とともに共有させていただきます。

    ◆使用しているExcelのバージョン
    Microsoft office Home and business2019
    ※買い切り版を使用しており、バージョンが最新ではないから操作性に違い出たのかと予想しています

    ◆解決法
    CSVのインポート時に、[データの変換]から、手動で[列の分割]位置を調整する必要がありました。
    以下の手順でインポートすることによって、コピペして使える状態のものに整えることができました。

    ①CSVのインポート時に、[データの変換]をクリック

    ②[Power Queryエディター]の[ホーム]タブ[列の分割]から、[区切り記号の分割]を選択し、以下の設定をする。
    ・区切り記号を選択するか入力くしてください → コンマ
    ・分割 → 1番左の区切り記号

    ③[OK]で列を分割後に、余計な列は削除する

    ④[ホーム]タブの[閉じて読み込む]をクリック

    ⑤この手順で読み込まれた表をもとに、こちらで教えていただいたマクロを実行する

    改めて有用な記事をありがとうございました。

    • てるぞう より:

      解決できてよかったです。
      当方のOfficeも2019なのですが、
      不思議ですね。
      パッチの関係かもしれません。
      マイナポータルはせっかくダウンロードできるのに、
      表形式になっていないので、
      そのままでは、使えないの困りものです。
      CSVでダウンロードできる意味がありません。

  3. けむろめ より:

    てるぞう 様
    How Toに感謝 様

    コメントが遅くなり申し訳ありません。結局年始の連休は手付かずに終わり、3連休に持ち越しとなりました。
    おかげさまで無事コンマ入りの数値を切り出すことができました。
    私はMS365のExcelなのですが、
    区切り記号:カスタム(←デフォルト表示)
    で、How Toに感謝 様の手順(データの変換)に沿って試したところ、無事取り出すことができました!
    なぜこんな使いづらいデータになっているのか、お役所の感覚は理解に苦しみますが、これで申告準備に進めます!
    ありがとうございました!!!

    • てるぞう より:

      基本的に、マイナンバー系の情報連携は、
      XML形式なので、
      表としては扱い難いデータとなっているようです。
      ただ、こんなCSVってダウンロードしても、
      役に立たないので、
      お国は一体なにを考えていることやら・・・
      とは思います。
      税金の無駄使い?
      せめて、医療費申請のエクセルと同様の
      フォーマットでダウンロードできないと
      意味がありませんよね。

タイトルとURLをコピーしました