Excel フォームによるVBA管理 [Excel VBA]
■目的
Excelのバージョンが上がった場合でも、これまでのマクロを容易に使用できる
管理方法のメモ
■アプローチ
フォームを作成し、フォーム上のボタンにマクロを記載する
作成したフォームを、標準モジュールに登録する。
標準モジュールをリボンに登録し、読み出せるようにする。
※イメージ写真
■その他
Excelのバージョンが上がった場合でも、これまでのマクロを容易に使用できる
管理方法のメモ
■アプローチ
フォームを作成し、フォーム上のボタンにマクロを記載する
作成したフォームを、標準モジュールに登録する。
標準モジュールをリボンに登録し、読み出せるようにする。
※イメージ写真
■その他
フォームを使ってみる [Excel VBA]
■目的
・フォームを使う方法を習得する。
■フォーム作成方法
・
<ファイル拡張子>
*.bas ・・・ 標準モジュール
*.frm ・・・ フォーム モジュール(テキスト ファイル)
*.frx ・・・ フォーム モジュール(バイナリ ファイル)
・フォームを使う方法を習得する。
■フォーム作成方法
・
<ファイル拡張子>
*.bas ・・・ 標準モジュール
*.frm ・・・ フォーム モジュール(テキスト ファイル)
*.frx ・・・ フォーム モジュール(バイナリ ファイル)
シリアル データ通信 [Excel VBA]
■目的
・アルディーノを使用してADC(ADS1115)で読み取った電圧値をPCへ転送する方法を探る。
■通信方法(その1)
・easycommを使用して通信する方法あり。
Web 上に『 easycomm_1.84』で圧縮ファイルあり。
・圧縮ファイル中身
ec.bas ・・・標準モジュール
ecDef.bas ・・・標準モジュール
ecManual.xls
readme.txt
・上記、2種類の標準モジュールをExcelにインポートする。
ーーーーーーーー
画像貼り付け予定
ーーーーーーーー
・VBAでプログラムを作成し実行することで、
ADCの電圧値をPCへ取り込みグラフ作成ができることを確認した。
ーーーーーーーーーーーーーーーーーーーーーーー
電圧表示 / グラフの写真を張り付ける予定
ーーーーーーーーーーーーーーーーーーーーーーー
<サンプルプログラム>
・アルディーノを使用してADC(ADS1115)で読み取った電圧値をPCへ転送する方法を探る。
■通信方法(その1)
・easycommを使用して通信する方法あり。
Web 上に『 easycomm_1.84』で圧縮ファイルあり。
・圧縮ファイル中身
ec.bas ・・・標準モジュール
ecDef.bas ・・・標準モジュール
ecManual.xls
readme.txt
・上記、2種類の標準モジュールをExcelにインポートする。
ーーーーーーーー
画像貼り付け予定
ーーーーーーーー
・VBAでプログラムを作成し実行することで、
ADCの電圧値をPCへ取り込みグラフ作成ができることを確認した。
ーーーーーーーーーーーーーーーーーーーーーーー
電圧表示 / グラフの写真を張り付ける予定
ーーーーーーーーーーーーーーーーーーーーーーー
<サンプルプログラム>
Private Sub CommandButton1_Click() '①初期設定 ec.COMn = 3 'COM4を指定します ec.Setting = "9600,n,8,2" '通信条件(ボーレート,パリティビット数,データビット数,ストップビット数)の設定 ec.HandShaking = ec.HANDSHAKEs.RTSCTS '通信ハンドシェークの設定 ec.Delimiter = ec.DELIMs.CrLf 'データの区切りを示す文字列を設定します '②データの送信 ec.OutBuffer = 100& * 1024& '現在処理の対象になっているポートの送信バッファを100kBに設定します ec.AsciiLine = "*TRG" '"*TRG"という文字列をデリミタ付きで送信します. '③データの受信 A$ = ec.AsciiLine 'デリミタの手前までの受信文字列をA$に代入します. ec.InBufferClear '受信バッファをクリア '④受信データの表示 MsgBox A$ '⑤ポートを閉じる ec.COMn = -1 '終了処理 End Sub Private Sub CommandButton2_Click() Dim MeasCount As Long '計測回数カウンタ Dim ReadData As String '入力した値 ec.COMn = 3 'COMポートのオープン(COMポート番号) ec.Setting = "9600,n,8,2" 'COMポートの設定(通信速度,パリティ,データビット,ストップビット) Range("B10") = "AD1" 'ワークシートのB10 セルにAD1 と表示 Range("C10") = "AD2" 'ワークシートのB10 セルにAD2 と表示 Range("D10") = "AD3" 'ワークシートのB10 セルにAD3 と表示 Range("E10") = "AD4" 'ワークシートのB10 セルにAD4 と表示 MeasCount = 1 '計測回数カウンタ 初期化 Do ec.OutBuffer = 100& * 1024& '現在処理の対象になっているポートの送信バッファを100kBに設定します ec.AsciiLine = "*TRG" '"*TRG"という文字列をデリミタ付きで送信します Range("A10").Offset(MeasCount, 0) = MeasCount '計測カウンタ値をA10列に書込み ReadData = ec.AsciiLine 'AD1 データ読み込み ReadData_i = Val(ReadData) '文字データを数値データに変換 Range("A10").Offset(MeasCount, 1) = ReadData_i 'AD1の値をA11列に書込み ReadData = ec.AsciiLine 'AD2 データ読み込み ReadData_i = Val(ReadData) Range("A10").Offset(MeasCount, 2) = ReadData_i ' ‘ワークシート書込み ReadData = ec.AsciiLine 'AD3 データ読み込み ReadData_i = Val(ReadData) Range("A10").Offset(MeasCount, 3) = ReadData_i ' ‘ワークシート書込み ReadData = ec.AsciiLine 'AD4 データ読み込み ReadData_i = Val(ReadData) Range("A10").Offset(MeasCount, 4) = ReadData_i ' ‘ワークシート書込み MeasCount = MeasCount + 1 'カウンタに1を加算 Loop End Sub Private Sub CommandButton3_Click() ec.COMnClose = 0 'COMポートのクローズ MsgBox " COM3 CLOSED " '停止メッセージ表示 End End Sub Private Sub CommandButton4_Click() Cells.Select '全てのセルを選択 Selection.ClearContents 'セルを削除 Range("A10").Select 'セル(A11)に移動 End Sub
散布図の変更 [Excel VBA]
■目的
・所望の散布図グラフを効率よく作成する
■アプローチ
<グラフの作成方法>
・最初に『グラフ ツール』⇒散布図を選択しグラフを作成する。
・そのグラフをベースに、下のグラフ仕様の変更をおこなう。
・グラフの変更はVBAプログラムでおこなう。
・VBAプログラムは、Excelの『Active X コントロールボタン』のコマンド ボタンに登録する。
・今後は、このボタンを押下することで所望のグラフフォーマットトで散布図を作成する。
<グラフ仕様>
グラフ内 フォント Meiryo UI
グラフ内 文字サイズ 12
X軸文字サイズ 14
Y軸文字サイズ 14
X軸最小 0
X軸最大 40
Y軸最小 0
Y軸最大 300
X軸目盛 2
Y軸目盛 50
グラフ外枠サイズ 横 200 * 17 / 7
グラフ外枠サイズ 縦 100 * 11 / 3
凡例位置 右
グラフ線の補完 空白セルの補完
近似曲線 消去
グラフ枠 消去
グラフ設定 移動する/大きさ変更しない
<VBAプログラム>
・所望の散布図グラフを効率よく作成する
■アプローチ
<グラフの作成方法>
・最初に『グラフ ツール』⇒散布図を選択しグラフを作成する。
・そのグラフをベースに、下のグラフ仕様の変更をおこなう。
・グラフの変更はVBAプログラムでおこなう。
・VBAプログラムは、Excelの『Active X コントロールボタン』のコマンド ボタンに登録する。
・今後は、このボタンを押下することで所望のグラフフォーマットトで散布図を作成する。
<グラフ仕様>
グラフ内 フォント Meiryo UI
グラフ内 文字サイズ 12
X軸文字サイズ 14
Y軸文字サイズ 14
X軸最小 0
X軸最大 40
Y軸最小 0
Y軸最大 300
X軸目盛 2
Y軸目盛 50
グラフ外枠サイズ 横 200 * 17 / 7
グラフ外枠サイズ 縦 100 * 11 / 3
凡例位置 右
グラフ線の補完 空白セルの補完
近似曲線 消去
グラフ枠 消去
グラフ設定 移動する/大きさ変更しない
<VBAプログラム>
Private Sub CommandButton1_Click() Dim ch As ChartObject For Each ch In ActiveSheet.ChartObjects 'Debug.Print ch.Name ch.Chart.ChartArea.AutoScaleFont = True ch.Chart.ChartArea.Font.Name = "Meiryo UI" 'ch.Chart.ChartArea.Font.Name = "MS Pゴシック" ch.Chart.ChartArea.Font.Size = 12 ch.Chart.Parent.Width = 200 * 17 / 7 ch.Chart.Parent.Height = 100 * 11 / 3 ch.Chart.Axes(xlCategory).MinimumScale = 0 'X軸 最小値 ch.Chart.Axes(xlCategory).MajorUnit = 2 ch.Chart.Axes(xlCategory).MaximumScale = 10 'X軸 最大値 ch.Chart.Axes(xlValue).MinimumScale = 0 'Y軸 最小値 ch.Chart.Axes(xlValue).MajorUnit = 50 ch.Chart.Axes(xlValue).MaximumScale = 300 'Y軸 最大値 'ch.Chart.Axes(xlValue).MajorUnit = 0.2 'ch.Chart.legend.Position = xlLegendPositionBottom '凡例表示(下)xlLegendPositionBottom 下 ch.Chart.legend.Position = xlLegendPositionRight '凡例表示(右)xlLegendPositionRight 右 ch.Chart.Axes(xlCategory).TickLabels.Font.Size = 14 ' X軸のフォントサイズを設定する xlCategory ch.Chart.Axes(xlValue).TickLabels.Font.Size = 14 ' Y軸のフォントサイズを設定する xlValue ch.Chart.ChartArea.Border.LineStyle = 0 'グラフ枠の消去 ch.Placement = xlMove Next End Sub