こんにちは、うぃむです。
さて、エクセルのマクロのお勉強を少しづつしています。
来年にインボイス制度が始まります。制度がは始まると、登録番号などの確認が必要となるみたいですね。
登録番号の確認は、ここからすればよいのですが、あえてエクセルで作ってみました。
使った機能
- 関数からWebサイトの確認
- マクロからWebサイトの確認
- Webサービスからのデータ取得
参考に使わせていただいたサイト
今回は、「適格請求書発行事業者公表サイト」を使わせていただきました。
この登録番号13桁を入力すると適格請求書発行事業者の確認ができます。 こんな感じで、表示されるのでこのURLのリンクを貼ってあげればいいわけですね。関数からWebサイトの確認
エクセルには、「HYPERLINK(リンク先,(別名))」という関数があります。このリンク先をURLにすれば、Webサイトに飛ぶことができます。
関数は以下のような感じにしました。
=HYPERLINK("https://www.invoice-kohyo.nta.go.jp/regno-search/detail?selRegNo="&SUBSTITUTE(B2,"T",""),"リンク")
しかし、「HYPERLINK」には制限があり、
- 255文字まで
- 65530個まで
- URLパラメーターは無効になる
というのがあるそうです。
今回、サンプルはURLにパラメーターを使っているため、正しく動作しない場合がありました。
URLパラメーターがある場合は、使えないエクセルのバージョンもあるようです。その場合は、次のマクロを確認してください。
マクロからWebサイトの確認
マクロからWebサイトを開くには、既定のアプリが使える「WScript.Shell」が使いやすいでしょうか。
マクロは、以下のようにしてみました。
Sub 適格請求書発行事業者公表サイト確認() Dim oWSH As Object Set oWSH = CreateObject("WScript.Shell") ' 規定のブラウザーで「適格請求書発行事業者公表サイト」を開く oWSH.Run "https://www.invoice-kohyo.nta.go.jp/regno-search/detail?selRegNo=" & Replace(Cells(3, 2).Value, "T", "") End Sub
これで、ボタンを押すと適格請求書の登録番号が確認できるようになりました。
Webサービスからのデータ取得
エクセルの関数に「WEBSERVICE」があります。これを使うことで、Webサービスから取得した情報を表示してくれます。
「適格請求書発行事業者公表サイト」には、これに対応した機能はないのですが、外部の「ExcelAPI」が対応してくれていたので、これを使ってみます。
関数は以下の内容です。
=WEBSERVICE("https://api.excelapi.org/company/invoice_check?id="&SUBSTITUTE(B4,"T",""))
登録があれば、「登録」なければ「未登録」とでるだけですが、簡単に使えます。これ以外にも、名前、屋号、住所などを表示できる機能もあります。
この機能はインターネットをプロキシ経由で接続している場合に、うまく動かない気がします。
エクセルでプロキシを経由する方法は知らないので、使ってみたい方は、調べてみてください。
作成したエクセル
インターネット上から、ダウンロードしたファイルは、アクセスをブロックされると思います。その場合は、ファイルのプロパティから、「許可する」を選択してくださいね。
また、当シートはマクロも有効にして使ってください。
※登録番号は、スクエニさんのものを使わせていただきました。公表されている情報なので問題ないと思っていますが、問題があれば訂正します。
おしまい
ということで、今回は勉強中のエクセルのお話でした。
0 件のコメント:
コメントを投稿