質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

パース

パースとは、一定の文法に従って記述されたテキスト文書を解析し、データ構造の集合体に分解・変換することを呼びます。

Trello

Trelloは、無料のタスク管理ツール。タスクを1枚のカードとし、各進捗エリアごとで管理することができます。個人の利用や、複数人での共同作業を直感的且つ容易に行うことが可能です。PCはWebブラウザで、スマホはiPhoneとAndroidでそれぞれアプリが提供されています。

Q&A

1回答

996閲覧

【VBA api Jsonについて】

TatsukiKumagai

総合スコア1

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

パース

パースとは、一定の文法に従って記述されたテキスト文書を解析し、データ構造の集合体に分解・変換することを呼びます。

Trello

Trelloは、無料のタスク管理ツール。タスクを1枚のカードとし、各進捗エリアごとで管理することができます。個人の利用や、複数人での共同作業を直感的且つ容易に行うことが可能です。PCはWebブラウザで、スマホはiPhoneとAndroidでそれぞれアプリが提供されています。

0グッド

0クリップ

投稿2022/11/17 07:29

前提

お世話になります。
trello api とExcelを連携させるツールを作成しておりまして、
jsonの空文字の場合の処理がわからずつまずいてしまっております。。

どなたかご教授頂けると幸いです。

実現したいこと

-空文字の場合nullまたは"0"で返したい

発生している問題・エラーメッセージ

obj("name")はどちらも正常に取得できておりますが、
obj("labels")(1)("name")の2周目のforで実行エラー"5"「プロシージャの呼び出し、または引数が不正です。」が起きてしまいます。

エラーメッセージ 実行エラー"5"「プロシージャの呼び出し、または引数が不正です。」 --Log----- テスト 重要ラベル TEST ### 該当のソースコード VBA ソースコード ※前提として、クラスよりレスポンスが返ってくるようにしております為、 msg の中は下記jsonになります。 【VBA】 Dim newcard As New Trello Dim msg As String Dim res Dim obj msg = newcard.Get_Cards_ALL(List_maintenance) 'Debug.Print msg Set res = ParseJson(msg) For Each obj In res Debug.Print obj("name") Debug.Print obj("labels")(1)("name") Next Set res = Nothing End sub 【レスポンスjson】tabが効かず見にくく申し訳ございません。http://json.parser.online.fr/ [ { "id":"0000", "name":"テスト", "labels":[ { "id":"0000", "idBoard":"1111", "name":"重要ラベル", "color":"green" } ] }, { "id":"0000", "name":"TEST", "labels":[ ] } ] ### 試したこと 恐らく、"labels":[] の中身が空でnameパラメータが見つからないため起こっているのかと予想しますが、IFで For Each obj In res IF NOT(obj("labels")="") then Debug.Print obj("name") Debug.Print obj("labels")(1)("name") end if Next で回避しても無駄でした。。。 jsonで空文字、パラメータ無しの場合の処理がわかりません。 ご教授頂けましたら幸いです。 ここに問題に対して試したことを記載してください。 ### 補足情報 VBA-JSONを使用しております

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ソースからの推測ですが「VBA-JSON」を使用している認識であっていますかね?
あっているならResはDictionaryのはずなので、nameキーが存在するか確認すれば行けると思います。

vba

1If obj.Exists("name") Then 2 Debug.Print "キーに name は存在します。" 3Else 4 Debug.Print "キーに name は存在しません。" 5End If

投稿2022/11/21 12:45

ryosuke0825

総合スコア2

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問