top of page

​タグ一覧

配列処理(73)

階層化フォーム(33)

ファイル操作(28)

開発事例(22)

シート・セル操作(18)

図形操作(13)

コード自動生成(10)

ユーザーフォーム(9)

文字列操作(8)

設計思想(7)

開発効率化(6)

数学(6)

GAS(5)

アニメーション(5)

技術解説(4)

講座実施報告(5)

イミディエイトウィンドウ(4)

Googleスプレッドシート(4)

副業(4)

クリップボード(4)

条件付き書式(4)

その他(4)

ココナラ(3)

小説(3)

HTML(3)

JavaScript(3)

OneDrive(2)

イベントプロシージャ(2)

Enum(2)

PDF(2)

フリーランス(2)

リスキリング(2)

Outlook(2)

介護(2)

Discord(2)

シフト表(2)

LookerStudio(2)

日報(2)

カレンダー(2)

罫線(2)

パズル(2)

小ネタ(2)

コード解説(2)

クラスモジュール(2)

ステータスバー(1)

コード解析(1)

バックアップ(1)

可変長引数配列(1)

ブック処理(1)

スクレイピング(1)

スプレッドシート(1)

coconala(1)

リボン登録マクロ(1)

QRコード(1)

実行予約(1)

給与計算(1)

VBA不使用(1)

リボン(1)

超勉強会(1)

スピログラフ(1)

図名描写(1)

連想配列(1)

溶接ロボット(1)

保育士(1)

楽天市場(1)

経理(1)

医療(1)

文書作成(1)

発注書(1)

ショートカット(1)

WebAPI(1)

色操作(1)

スーパー開発ショートカット(1)

ライブラリ処理(1)

放課後等デイサービス(1)

児童福祉支援(1)

学校(1)

UI(1)

CAD(1)

カーソル操作(1)

ConvArray1D_Start1|一次元配列を開始要素番号1に変換 | Excel VBA

更新日:1月4日

ConvArray1D_Start1|一次元配列を開始要素番号1に変換 | Excel VBA

<概要 (VBA 配列 要素番号)

 ConvArray1D_Start1は、開始要素番号が0の一次元配列を、開始要素番号1の一次元配列に変換するためのExcel VBA用汎用プロシージャです。


 Excel VBA標準機能のArray関数やSplit関数を利用して生成された一次元配列は開始要素番号が0となるので、非常に扱いづらい配列となります。この背景で、0開始の一次元配列を1開始に変換する処理が必要になったりします。


 関連記事

VBAで扱う配列の開始要素番号は1にすべきという話


 この変換処理にはこれまたExcel VBAの標準機能のWorksheetFunction.Transpose関数を2回実行することで可能ですが、WorksheetFunction.Transpose関数は

・要素の型を勝手に変換

・処理可能な要素数に上限ある

・要素にオブジェクトが含まれるとエラーとなる

などの欠陥があるので基本的に使用を避ける必要があります。


 関連記事

 「Transpose関数の欠点(Excel VBA)


 上記のような背景で準備している汎用プロシージャが「ConvArray1D_Start1」です。

 ちなみに、名前にある「Conv」は「Convert」の略で「変換する」を意味しています。


<実行例>

このサンプルでは、Array関数で生成された開始要素番号0の一次元配列をzConvArray1D_Start1によって開始要素番号1の配列へ変換しています。


変換後の配列は、LBoundが1、UBoundが元配列の要素数と一致する形となり、For I = 1 To UBound(Array) のような一般的なループ構文で安全に処理できます。


Debug.Printの出力結果からも、要素番号が1から順に並び、元の配列内容がそのまま保持されていることを確認できます。


<関連コード>

 今回の汎用プロシージャは、下記の別で紹介している汎用プロシージャを使用しています。


<関連記事>

 今回紹介しているような汎用プロシージャを部品として一元管理する方法は別記事で紹介していますので、是非このノウハウも参考にしてみてください。

 コーディングを効率化する上でどんどん増やしていった汎用プロシージャ(部品)をいくら増やしても簡単に流用ができるような仕組みの構築が可能になります。


<コード>


Excel VBAによる業務自動化・ツール開発をご検討の方へ

​"脱Excel"の前に、現状のExcelの潜在能力を120%発揮してみませんか?

Softex-Celware

​インボイス登録番号:T5810983887134

  • Facebook
  • Twitter
  • YouTube

©2023 softex-celware。Wix.com で作成されました。

bottom of page