見出し画像

ソフトウェア工房孫風雅 ”プログラミング言語 難易度” 検索結果説明その7

ソフトウェア工房孫風雅です。

講師が最近インターネット検索で???と思ったアイテムがありますので
共有させて頂きたいと思います。

検索キーワード:”プログラミング言語 難易度”
検索エンジン:GOOGLE
検索実行日時:2022年8月21日 12:00-
(検索結果は本文以下の==の後の記載に変更しました)

講師が????と思ったのがランクの高いとレイティングされている言語と
ランクが低いとレイティングされている言語とになります。

今回は VBA になります。(VBAに関する講師メモです)

VBAは複数の検索結果でいづれも難易度が低いと分類されています。

VBAに関して、いくつか講師が知っているVBAメモを公開したいと思います。

一つ目はUserFormでは配列データは使用できない事についてです。
実際、確かめましたが、UserFormに配列変数を定義すると、コンパイルエラーになり、定義できません。
インターネットの検索結果でも、UserFormでは配列変数が使用できないとの説明が出てきます。

然し、これは半分正解で半分誤りです。

正確にはUserFormでは配列は定義できないが、UserForm上で配列を使用する事はできるという事です。
実はVBAではVariant定義という変数定義があり、どんなデータでも入力することができ、この変数は再定義が可能なのです。
要するにUserFormでVariantで変数名を定義しておき、初期化関数内(起動時一度だけ実行)で配列データに再定義する事が可能なのです。
結果、大量のデータとUserFormとを共存させることができます。

講師は会社員生活後半でWEBシステムをExcelのUserFormを使ってオフライン化した経験があります。その時、問題になったのが配列のデータがUserFormでは使用できないという点です。

最終的には、上記の方法で配列を使用したのですが、その結果に行きつくまでに数か月あったため、コンパイルエラーが出るため、配列は使えないと判断して、データを複数同時に扱える方法を独自に考えました。
基本的に配列以外の変数は変数1に対してデータ1の為、仕事で扱うデータには多要素になることが通常で1変数では足りません。
そこで、考えたのが文字列変数にデータセパレータ文字(”,”とか”/”)を使ってデータとデータを一つにまとめる方法を考えました。
難点は定義した文字列変数分しかデータが一度に持てない事と(纏められるのは1変数1行のイメージです。10行扱いたければ10の変数定義が必要です)、セパレータを取り除かないと実データにアクセスできず
またデータのUPDATEがある場合の扱いが途轍もなく煩雑で大変でした。

結構、時間を無駄にしてしまいましたが、配列が使用できると確証が取れたため、そこまで作成したソースコードを全て作り変えました。VBAのUserFormの良いところは、処理は全面変更しても、GUIは全く変更する必要が無いところです。これはUserForm(GUI)と処理とのつながりが、個々のGUIとの関数名のみというところだと思います。
(ソースを消すと、コントロールは再記述が必要になりますが)

講師の経験が、皆様のお役に立てれば幸いです。

===================================
複数の検索結果は概ね以下の通りです。

難易度高い順(結果A)
ランク5
C++
C言語

ランク4
JAVA
Go

ランク3
C#
Swift
Google Apps Script
Kotlin

ランク2
VBA
Ruby
PHP
Python
Typescript
JavaScript

難易度高い順(結果B)
ランク3
C++
R

ランク2
Python
Go
Kotlin
JAVA
Swift
C#

ランク1
PHP
JavaScript

難易度高い順(結果C)
ランク3
JAVA
R言語
C言語
C++

ランク2
Go
Swift
Python
C#
Perl

ランク1
JavaScript
PHP
Ruby
VBA
VB/VB.NET
アセンブリ言語
Kotlin

この記事が気に入ったらサポートをしてみませんか?