タグ

2020年2月13日のブックマーク (4件)

  • VBAでJSONを読み込んでみる - Qiita

    なんかふと気になったのでExcelでJSONを読み取る方法を探した。 JSONパース自体はこちらを参考にさせてもらった。 ExcelでJSONを扱う場合のつまずきポイント まず前提として、外部ファイルであるJSONファイルを開き読み込んでシートに一覧出力する、 という処理を行いたい。 JSONの構造 JSONの構造は下記。 {"tweet":[ { "id":"0001", "daytime":[ { "year":"2019", "month":"01", "day":"01", "hour":"12", "minute":"00" } ], "contents":"テストテストテスト" }, { "id":"0002", "daytime":[ { "year":"2019", "month":"01", "day":"01", "hour":"12", "minute":"00" }

    VBAでJSONを読み込んでみる - Qiita
    teddy-g
    teddy-g 2020/02/13
    ScriptControlは64bitでは無理なんだよたえこ。
  • VBAで安全にエラーハンドリングする - Qiita

    VBAは「Try-Catch」ができない!? 「!?」なんて言ってますが、もちろんできないです。(笑) ちなみに、VB.NETならできます。 ただ、Try-Catchがあろうなかろうが、正しくエラーハンドリングができるかどうかは別です。 大事なのは、モジュールを構造化したときに、 正しい経路で、エラーを伝播できるか だと思います。 ということで、VBAにおけるエラーハンドリングについて説明していきます。 何もしなかったらどうなる? こんな処理を考えてみましょう。 ' こいつは上位 Sub Main() ErrorMethod MsgBox "完了しました。" End Sub ' こいつは下位 Sub ErrorMethod() Err.Raise 513, "なにか起きた" End Sub このとき、Mainが上位、ErrorMethodが下位になります。 下位モジュールでエラーが起きてま

    VBAで安全にエラーハンドリングする - Qiita
    teddy-g
    teddy-g 2020/02/13
    Try Catchを実装する気はないのだろうか。いまどきOn Error Go ToってBASICかよ!ってBASICだったな。
  • 宇宙一わかりやすい?VBA-JSONを使ったJSONパースのしかた - Qiita

    はじめに VBAでJSONをパースする際にはCreateObject("ScriptControl")を使用するのが一般的でしょう。(サンプル例) しかし、この手段は32bit限定であり、64bitでは使用できません。将来性を考えたら他の手法を用いるべきであり、JSONパースのライブラリーとして一般的なVBA-JSONを使ってみることにしました。 導入の背景 Excel2010のサポートもそろそろ来年にきれるし、必要なときに必要なだけバラバラに買っていたのをやめて、Office365にバージョンアップしようとしたら64bit版がインストールされてしまって、JSONを使えなりました。なお、"HtmlFile"なる手段を使うやり方もあるようですが、IEやedgeの将来性を考えたらこれもつかいたくありません。 今までVBA-JSONを見送った背景 なら、VBA-JSONしかないとなりましたが、

    宇宙一わかりやすい?VBA-JSONを使ったJSONパースのしかた - Qiita
    teddy-g
    teddy-g 2020/02/13
    いろいろ試したが、結局このVBA-JSONを使わないと問題解決しなかった。ユーザ定義関数にして作業が楽になった。ただし重い。
  • ユーザー定義関数を作る:Excel VBA|即効テクニック|Excel VBAを学ぶならmoug

    ツイート VBAには、値を返さないSubプロシージャと、値を返すFunctionプロシージャがあります。 Sub Sample1() Dim buf As Long buf = 123 MsgBox Func1(buf) End Sub Function Func1(arg As Long) Func1 = arg * 2 End Function Func1のような、値を返すFunctionプロシージャは、ワークシート上でも使用できます。 ワークシート上で使用することを目的としたFunctionプロシージャを、ユーザー定義関数と呼びます。 たとえば、上記のFunc1は、セルに「=Func1(123)」のように入力することで、SUM関数やVLOOKUP関数などと同じように使うことができます。 引数として数字を受け取るユーザー定義関数は、上記Func1の「(arg As Long)」のように

    teddy-g
    teddy-g 2020/02/13
    ユーザ定義関数のTips色々。オプションの引数とか、不定の引数とか。忘れやすいので。