Technology
Visual Basic系プログラミング(Visual Basic .NET/VBA/Visual Basic)
(Visual Basicけいプログラミング)
Visual Basic
Visual Basic系プログラミングとは、Microsoftが開発したVisual Basicの文法や開発環境を利用して、Windowsアプリケーションや業務支援ツールを作成することです。
代表的なものには、.NET環境で使用するVisual Basic、Excelなどの自動化に用いるVBA、旧来のWindowsアプリケーション開発で使用されたVisual Basic 6.0以前があります。
ハカルプラスでは、Windowsパソコンを利用した設備監視、計測データ収集、実績管理、帳票出力、Excel集計などのシステム開発にVisual Basic系言語を活用してきました。
Visual Basic系言語の種類
Visual Basic
現在のVisual Basicは、Microsoftの.NET環境で動作するプログラミング言語です。C#などと同じ.NETの実行環境やライブラリを利用できます。
ボタン、入力欄、一覧表、グラフなどを備えたWindowsアプリケーションを開発でき、設備監視、実績検索、設定管理、データベース連携などに利用されます。
VBA
VBAは「Visual Basic for Applications」の略で、Excel、Access、WordなどのMicrosoft Officeアプリケーションに組み込まれたプログラミング言語です。
ハカルプラスでは、主にExcelを利用した集計や帳票作成の自動化に活用しています。
- 計測データや製造実績の集計
- CSVファイルの読込み・変換
- 日報・月報・帳票の作成
- グラフの自動作成
- 複数ファイルの一括処理
- 入力内容のチェック
旧Visual Basic
旧Visual Basicは、Visual Basic 1.0から6.0までのWindowsアプリケーション開発環境です。特にVisual Basic 6.0は、業務システムや設備監視ソフトウェアで広く利用されました。
現在、新規システムで採用する開発環境ではありませんが、長期間稼働している産業設備では、Visual Basic 6.0で開発されたソフトウェアが残っている場合があります。
Visual Basicの主な用途
Visual Basicは、設備を直接高速制御するよりも、PLCや計測機器から取得した情報を表示・保存・管理するパソコン側のソフトウェアに適しています。
- 計測値や設備状態のモニター表示
- 計量設定値・品種情報の管理
- 製造実績・計量実績の保存
- 警報・操作履歴の記録
- 実績検索・グラフ表示
- CSV・帳票の出力
- PLC・計測器との通信
- 生産管理・基幹システムとの連携
設備の運転やインターロックはPLCが担当し、パソコンソフトが監視、設定、保存、帳票作成を担当する構成が一般的です。
画面アプリケーションの開発
Visual Studioの画面設計機能を利用し、設備監視画面、設定画面、実績検索画面、保守画面などを構築できます。
画面を作成する際は、情報を表示できることだけでなく、操作ミスを防ぐことも重要です。
- 運転状態や警報を識別しやすく表示する
- 設定できる値の範囲を制限する
- 重要な操作では確認画面を表示する
- 利用者権限によって操作範囲を分ける
- 通信異常時に古い値であることを表示する
PLC・計測機器との通信
Ethernet、TCP/IP、シリアル通信、メーカー提供ライブラリなどを利用し、PLC、計量コントローラ、計測器、バーコードリーダーなどと通信できます。
実際のシステムでは、正常に通信できる場合だけでなく、相手機器の停止、ケーブル断線、タイムアウト、不正なデータなども考慮します。
- 接続失敗時の再接続
- 応答待ちのタイムアウト
- 受信データの範囲・形式確認
- 通信状態やエラー内容の表示
- 通信履歴の保存
- 復旧後の自動再開
パソコンソフトが停止しても設備を安全に停止できるよう、安全制御やインターロックはPLC側で成立させます。
データベースとの連携
Microsoft SQL Server、Access、Oracleなどと接続し、計測値、製造実績、設定情報、警報履歴などを保存・検索できます。
データベース連携では、登録できなかった場合の再試行、重複登録防止、処理途中での異常終了などを考慮します。
複数のデータを一つの実績として登録する場合は、途中まで登録された状態を残さないよう、トランザクションを利用することがあります。
Visual BasicとVBAの使い分け
| 項目 | Visual Basic | VBA |
|---|---|---|
| 実行環境 | Windows・.NET | ExcelなどのOffice |
| 主な用途 | 独立した監視・業務システム | Office作業の自動化 |
| 画面 | 専用操作画面を構築できる | シートや簡易フォームを使用する |
| 連続運転 | 常駐システムを構築しやすい | 長時間の常時監視には不向きな場合がある |
| 複数人利用 | サーバーやDBと組み合わせやすい | ファイル共有では競合に注意が必要 |
複数設備から継続的にデータを収集する場合はVisual Basic、既存のExcel帳票を利用した一時的な集計や定型作業の自動化にはVBAが適しています。
VBAを使用する際の注意点
VBAは短期間で業務を自動化しやすい一方、処理が複雑になると、担当者以外が修正できない状態になりやすい傾向があります。
また、マクロを含むファイルはセキュリティ上の理由から実行を制限されることがあります。配布元、保存場所、マクロの有効化方法を管理する必要があります。
次のような場合は、独立したアプリケーションやデータベースシステムへの移行を検討します。
- 複数人が同時に利用する
- 24時間連続してデータを収集する
- 処理するデータ量が増えている
- ファイル破損や上書き競合が発生する
- 利用者権限や操作履歴が必要である
旧Visual Basicシステムの更新
Visual Basic 6.0などで開発された既存システムは、パソコンやOS、通信機器、データベースの更新によって動作しなくなる可能性があります。
更新前には、次の項目を確認します。
- ソースコードの有無
- 外部ライブラリ・ActiveX部品
- PLCや計測機器との通信仕様
- データベースと保存データ
- 帳票・プリンターの設定
- 現在使用している機能
- Windowsや周辺機器への依存
Visual Basic 6.0と現在のVisual Basicは、名称や文法に共通点がありますが、実行環境や画面部品の仕組みが異なります。単純変換ではなく、既存機能と現在の運用を確認したうえで再設計する場合があります。
更新時の動作確認
旧システムを更新する際は、画面が起動することだけでなく、設備との通信や実績処理が既設時と同様に動作することを確認します。
- PLC・計測器との接続
- 設定値の送受信
- 実績の保存と検索
- 警報・通信異常時の動作
- 帳票やCSVの出力内容
- 日付変更・月替わり・年替わりの処理
- パソコン再起動後の自動復旧
新旧システムを一定期間並行運転し、保存件数や集計結果を比較する方法もあります。
長期運用に必要な管理
産業用ソフトウェアを長期間使用するためには、ソースコードだけでなく、開発環境や外部ライブラリも管理します。
- ソースコードと変更履歴
- Visual Studioと.NETのバージョン
- 使用する外部ライブラリ
- Windowsとデータベースのバージョン
- 通信設定と接続機器
- 設定ファイルと認証情報
- インストール・バックアップ・復旧手順
パソコン故障時に同じ環境を再構築できるよう、インストーラー、設定情報、データベースのバックアップを準備します。
ハカルプラスのVisual Basic系開発
ハカルプラスでは、Windowsパソコンを使用する計測・制御システムや業務支援システムで、Visual Basic系言語を活用してきました。
設備監視、PLC・計測機器との通信、実績保存、データベース検索、帳票出力、Excel VBAによる集計、旧Visual Basicシステムの更新などに対応しています。
Visual Basicだけに限定せず、既存資産、動作環境、処理性能、保守体制に応じて、C#、C++、Pythonなども組み合わせてシステムを構築します。
よくある質問
Q. Visual Basic 6.0のソースコードがなくても更新できますか?
A. 実行中の画面、設備との通信、データベース、帳票などを調査して再構築できる場合があります。ただし、既存仕様の解析に多くの工数が必要になることがあります。
Q. VBAで作ったExcelを複数人で同時利用できますか?
A. ファイル共有だけでは、上書き競合やデータ破損が起こる可能性があります。複数人利用では、データベースや専用アプリケーションとの組み合わせを検討します。
Q. パソコンを更新しても既存のVisual Basicソフトを使用できますか?
A. Windows、外部ライブラリ、通信ドライバーなどに対応していれば動作する場合があります。実機での確認が必要であり、互換性がない場合は改修や再設計を行います。
Q. Visual Basicで設備を直接制御してもよいですか?
A. 通信による指令は可能ですが、即時性や安全性が必要な制御はPLC側で完結させることが基本です。パソコンソフトは監視、設定、実績管理を担当します。
Q. Visual BasicからC#へ移行できますか?
A. 可能です。同じ.NET環境の機能を利用できますが、単純な文法変換ではなく、画面、通信、データベース、外部部品を含めた移行設計が必要です。