見出し画像

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

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

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

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

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

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

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

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

三つ目はExcelのVBAではWindowsOSの制約があり、動作に制限があるという事です。UserFormでGUIを組み立てていた時、ある場面を保存して、一旦別GUIに切り替えて再度、元の選択状態に戻すという処理が必要になりました。尚且つ、別画面での操作結果も元画面に反映させる必要があるというものでした。

ここで遭遇したのがWindowsOSの制限です。
実はVBAのUserFormはイベントハンドラにてGUIと紐づいた関数とが結ばれています。
従って、ボタンを10回押したら、10回イベントハンドラが呼ばれたり
10個プルダウンメニューを選択したら10回イベントハンドラが呼ばれるべきなのですがWindowsOSはリアルタイムOSではないため、ボタンやプルダウンを短時間に押したり選択したら、回数分の割り込み(イベントハンドラの発生)が保証されていないようです。
これは、WindowsOSがリアルタイムOSでは無いためと推測できます。
リアルタイムOSであれば、処理時間が伸びても、必要なだけ割り込みが発生するハズですがそうではないOSでは、処理ができないため、回数が保証されません。

従って、GUI面を切り替える必要があり、前面での操作結果をプログラム的に繰り返し操作などで疑似的に操作してGUI上の選択結果をUPDATEしようとしましたが、選択されているべきものが、選択されていない等不定(動作したりしなかったりです)の状態が起きました。(回避策としては纏めて操作していたものを、個別に操作する様にして問題を回避しました)

ループ処理のような短時間にイベント発生事象を作成するとVBAのイベントハンドラ動作が付いてこれないようです。
インターネットにはプログラム的にプルダウンメニューの選択をしている例などがあるようですが、実際にご自身でプログラムを作成する場合は、WindowsOS上ではVBAのイベントが必ずしも回数分発生しない可能性がある事を考慮して繰り返し処理中でのメニューへの設定などは要注意だと思います。

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

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

難易度高い順(結果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

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