[Excel VBA]『名前の定義』で設定したセルが存在するか確認する簡単・簡潔な方法

VBA(Excel)
スポンサーリンク

概要

今回はExcelで設定した『名前の定義』の存在チェックを簡単・簡潔にやる方法を紹介します。
結果だけを見たい場合は後半までスクロールしてください。

いろいろなサイトを見ているとWorkbookオブジェクトのNamesで繰り返し処理を行っているのをよく見かけます。

例)Namesメソッドで繰り返し(Sheet1で印刷範囲が設定されていることを確認する)

上記コードの場合、コードだけで10行近くもあり複数の『名前の定義』を確認しないといけない時にどうしてもコードが煩雑になりますよね。
また、Nmを解放(①)してあげないとファイルを閉じるときにMicrosoftのバグで不具合を起こす可能性があります。

次の章でこれらの問題を解決していきます。

IsRef関数を使おう

Excelの関数の1つ、IsRef関数を使います。
IsRef関数はExcelのセルで利用できるもので、セルの参照先が存在するか判定します。
存在する場合はTrue、存在しない場合はFalseが返ります。

Excelで印刷範囲が設定されているか確認する場合は以下のような式をセルに入力します。

例)印刷範囲が設定されているか確認する

 

また、シートが分かっている場合は以下のような式をセルに入力します。

例)Sheet1シートで印刷範囲が設定されているか確認する

 

次の章でセルで使ったIsRef関数をVBA(マクロ)に組み込んでいきます。

IsRef関数をVBA(マクロ)で使うには?

では実際にセルで使えたIsRef関数をVBA(マクロ)で使ってみましょう。
セルで利用できる大抵の関数はVBAでも利用できます。
しかしながら、ApplicationオブジェクトのWorksheetFunctionにはIsRef関数が存在しません。

でも発想を変えることで利用できる方法があります。
引数に指定した式を評価して結果を返すEvaluateメゾットを利用することです。
Evaluateメゾットを使えば引数に関数式を指定することで評価することが可能になります。
以下のコードで、印刷範囲が設定されているか確認します。

例)[VBA]印刷範囲が設定されているか確認する

 

たったの1行で判定ができましたね。
Excel内であれば『Excel.Application.』は省略可能です。
また、EValuateメソッドは[]記号で省略できます。

例)[VBA]印刷範囲が設定されているか確認する(省略版)

 

EValuateを省略すると、Excelの関数をVBAで直接利用しているように見えるのでおすすめです!
Sum関数などもVBAで簡単に利用できるので、ぜひ試してみてください。

例)セルF13からセルF15までの合計を返す。

 

いかがだったでしょうか?
わからないところがあれば下の問い合わせからお願いします。

今回はここまで。
ノシ

みんなに使われている仮想通貨取引所ランキング
bitbank(日本)
bitbank

日本の古参取引所の一つ。
日本には約10程度の仮想通貨取引所が国によって認証されているが、bitFlyer/Zaif/Coicheck/bitpoint等が大きな問題を起こす中で、珍しく問題を起こしていない取引所であり、国内ではほぼ唯一信頼の置ける取引所。

仮想通貨FX(レバレッジ/証拠金取引)はできない。
仮想通貨FXをやりたい場合はbitbank Tradeに登録する必要がある。
取引可能銘柄は少なめなので、海外取引所で取引するために仲介する取引所と役割付けよう。(海外取引所では円では取引できないので国内でビットコイン等を買い送金する必要がある。)

国    :日本
メリット :信頼性が高い。
デメリット:レバレッジ取引ができない。

Binance

設立して1年も経たずに世界一の取引高となった取引所。
IEO(Initial Exchange Offering)で有名。IEOとはブロックチェーンプロジェクトの発行するトークンを取引所が先行販売するサービス。これらの通過は一般に取引が開始される前に公開価格よりも安く購入することができる。
2019年現在でも新規上場される通貨は高騰する傾向にある。
個人的には取引手数料が安くなる取引所コインのBNB(Binance Coin)での取引がおすすめ。
2019年7月より仮想通貨FX(レバレッジ/証拠金取引)が可能になりました!!(2019/7/20より日本国内でも可能)

国    :中国
メリット :IEO制度。多くのメジャーなアルトコインを取り扱っている。
デメリット:

BitMEX

ビットコインFXで有名な取引所。レバレッジは最大100倍まで可能。
仮想通貨FX取引所では取引高が最も高く安定したチャートを描く。
アルトコインの先物が10種類程度存在し、期日前に取引することで差也が取れやすい。レバレッジも掛けられる。
追証がないため、入金している以上のお金が取られることもない。
指値取引であればマイナス手数料(貰える側になる)になるが、成行手数料が少し高め。
資金調達という8時間毎の手数料制度を導入しており、ロング・ショート比率の乖離が大きくなると手数料が上がる。乖離が狭まる方向にポジションを持つと8時間毎の資金調達時に同等の手数料がもらえる。この制度を導入していることで健全な取引所運営がなされている。(ロングとショートの枚数が異なり乖離が広がるほど取引所の利益になる。) 通常時の手数料は0.01%程度。
日本語にも対応していて、FX取引をやりたいなら全取引所中1番のオススメ。

国    :セーシェル
メリット :サーバが落ちにくい。
デメリット:BTC価格急変時にサーバが重くなる傾向にある。

VBA(Excel) プログラミング
スポンサーリンク
あおいうえ@仮想通貨小額分散&備忘録をフォローする
スポンサーリンク
Aoiue's memorandum

---コメント---

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