• 検索結果がありません。

.AddItem " 埼 玉 ":.AddItem " 茨 城 ":.AddItem " 栃 木 ":.AddItem " 群 馬 ".AddItem " 山 梨 ":.AddItem " 静 岡 ":.AddItem " 岐 阜 ":.AddItem " 愛 知 ".AddItem " 三 重 "

N/A
N/A
Protected

Academic year: 2021

シェア ".AddItem " 埼 玉 ":.AddItem " 茨 城 ":.AddItem " 栃 木 ":.AddItem " 群 馬 ".AddItem " 山 梨 ":.AddItem " 静 岡 ":.AddItem " 岐 阜 ":.AddItem " 愛 知 ".AddItem " 三 重 ""

Copied!
10
0
0

読み込み中.... (全文を見る)

全文

(1)

1

エクセルによる無線機の制御プログラム

Appendix

① 「データ入力」ボタンに割り付ける VBA の記述

Private Sub cmdDataInput_Click() Unload frmMenu log.Show Sheets("ALL").Select Application.DisplayFullScreen = True Application.WindowState = xlMinimized End Sub **************************************** ② リストデータ(ComboBox)を作ったりフォームからシートの該当セルにデータを入力 するVBA の記述

Private Sub UserForm_Initialize( ) Dim Ti_me As String

Sheets("ALL").Select

Spin 移動.MAX = recordNum + 1

Set TBL(1) = txtyear: Set TBL(2) = txtmonth: Set TBL(3) = txtdate Set TBL(4) = txttime: Set TBL(5) = txtcall: Set TBL(6) = txtyrst Set TBL(7) = txtmrst: Set TBL(8) = txtband: Set TBL(9) = txtfreq Set TBL(10) = txtmode: Set TBL(11) = ComboBox1:

Set TBL(12) = ComboBox2: Set TBL(13) = txtant: Set TBL(14) = txtrig Set TBL(15) = txtremarks

Set dataRange = Range("B1").CurrentRegion

If dataRange.Rows.Count = 1 Then ‘ Else データ表示 (dataRange.Rows.Count + 1) End If With ComboBox1

.AddItem "北海道": .AddItem "青森": .AddItem "岩手": AddItem "秋田" .AddItem "山形": .AddItem "宮城": .AddItem "福島": .AddItem "新潟" .AddItem "長野": .AddItem "東京": .AddItem "神奈川": .AddItem "千葉"

(2)

2

.AddItem "埼玉": .AddItem "茨城": .AddItem "栃木": .AddItem "群馬" .AddItem "山梨": .AddItem "静岡": .AddItem "岐阜": .AddItem "愛知" .AddItem "三重": .AddItem "京都": .AddItem "滋賀": .AddItem "奈良" .AddItem "大阪": .AddItem "和歌山": AddItem "兵庫": .AddItem "富山" .AddItem "福井": .AddItem "石川": .AddItem "岡山": .AddItem "島根" .AddItem "山口": .AddItem "鳥取": .AddItem "広島": .AddItem "香川" .AddItem "徳島": .AddItem "愛媛": .AddItem "高知": .AddItem "福岡" .AddItem "佐賀": .AddItem "長崎": .AddItem "熊本": .AddItem "大分" .AddItem "宮崎": .AddItem "鹿児島": .AddItem "沖縄"

End With

With ComboBox2

.AddItem "01": .AddItem "02":. AddItem "03":.AddItem "04": .AddItem "05": .AddItem "06": .AddItem "07": .AddItem "08": .AddItem "09": .AddItem "10": .AddItem "11": .AddItem "12":. AddItem "13": .AddItem "14": .AddItem "15": .AddItem "16": .AddItem "17": .AddItem "18": .AddItem "19": .AddItem "20" .AddItem "21": .AddItem "22": .AddItem "23": .AddItem "24": .AddItem "25": .AddItem "26": .AddItem "27": .AddItem "28":.AddItem "29": .AddItem "30": .AddItem "31": .AddItem "32":.AddItem "33": .AddItem "34": .AddItem "35": .AddItem "36": . AddItem "37":.AddItem "38": .AddItem "39": .AddItem "40"

End With

Ti_me = Year(Date) & " 年 " & Month(Date) & " 月 " & Day(Date) & " 日 " '& Hour(Time) & "時" & Minute(Time) & "分"

Label5.Caption = Ti_me txtyear.Enabled = False

txtmonth.Enabled = False:txtdate.Enabled = False txttime.Enabled = False:Button 検索.Enabled = False End Sub

****************************************

③ EasayComm を使って無線機とデータをやり取りする VBA 記述の一部

Private Sub UserForm_Activate() Dim myCOMNUM As Integer Dim myBOU As Integer Dim myRIG$

Dim PR$, TX$, FI$, DA$ Dim A$, P$

(3)

3

Dim bandFlag As Integer On Error Resume Next

Application.WindowState = xlMinimized Application.DisplayFullScreen = True UserForm1.Show 'vbModeless

Sheets("予備").Select

myRIG = Range("A4").Value

LabelRig.Caption = myRIG & " / " & Range("A1").Value

Select Case myRIG Case "IC-706" RE$ = Chr$(&H4E) Case "IC-910" RE$ = Chr$(&H60) Case "IC-7000" RE$ = Chr$(&H70) Case "IC-7100" RE$ = Chr$(&H88) Case "IC-9100" RE$ = Chr$(&H77) Case "IC-9800" RE$ = Chr$(&H6A) End Select myCOMNUM = Range("A2").Value myBOU = Range("A3").Value If Range("A2").Value = "" Then MsgBox "リグのコントロールはしません。" Exit Sub 'リグコントロールなし Else ec.COMn = myCOMNUM Select Case myBOU

Case 1200: ec.Setting = "1200,n,8,1" Case 1800: ec.Setting = "1800,n,8,1"

(4)

4 Case 2400: ec.Setting = "2400,n,8,1" Case 4800: ec.Setting = "4800,n,8,1" Case 7200: ec.Setting = "7200,n,8,1" Case 9600: ec.Setting = "9600,n,8,1" Case 14400: ec.Setting = "14400,n,8,1" Case 19200: ec.Setting = "19200,n,8,1" Case 38400: ec.Setting = "38400,n,8,1" Case 57600: ec.Setting = "576800,n,8,1" Case 115200: ec.Setting = "115200,n,8,1" End Select ec.HandShaking = ec.HANDSHAKEs.No ec.Delimiter = ec.DELIMs.CR End If Sheets("予備").Select '前回終了時の MODE に設定========================================= Modedata = Range("A5").Value PR$ = Chr$(&HFE) + Chr$(&HFE) 'RE$ = Chr$(&H7C) TX$ = Chr$(&HE0) FI$ = Chr$(&HFD) CM$ = Chr$(&H6) Select Case Modedata

Case Modedata = "LSB": DA$ = Chr$(&H0) Case Modedata = "USB": DA$ = Chr$(&H1) Case Modedata = "AM": DA$ = Chr$(&H2) Case Modedata = "CW": DA$ = Chr$(&H3) Case Modedata = "RTTY": DA$ = Chr$(&H4) Case Modedata = "FM": DA$ = Chr$(&H5) End Select

ec.Ascii = PR$ + RE$ + TX$ + CM$ + DA$ + FI$ LabeMODE.Caption = Range("A5").Value

(5)

5 ToggleButton1.Value = "True" LabelVFO.Caption = Range("A7").Value PR$ = Chr$(&HFE) + Chr$(&HFE) 'RE$ = Chr$(&H0) TX$ = Chr$(&HE0) FI$ = Chr$(&HFD) CM$ = Chr$(&H7)

Select Case LabelVFO.Caption

Case LabelVFO.Caption = "VFO A": DA$ = Chr$(&H0) Case LabelVFO.Caption = "VFO B": DA$ = Chr$(&H1) End Select

ec.Ascii = PR$ + RE$ + TX$ + CM$ + DA$ + FI$ 'Rig 起動時の周波数を BAND に設定=================================== Sheets("ALL").Select Do DoEvents FTC A$ = A$ + ec.Ascii L = Len(A$) For K = 1 To L P$ = Mid(A$, K, 1) M = Asc(P$) If P$ = Chr$(&HFC) Then DI$ = "" 'Exit For End If If M < 16 Then X$ = "0" + Hex$(M) Else X$ = Hex$(M) End If

(6)

6

If M = &HFD Then DI$ = D$

FH$ = Left$(DI$, 10): F = Val(FH$) / 1000000# If Right$(FH$, "4E00") Then

Select Case Left$(FH$, 6) Case "010001" LabeMODE.Caption = "LSB" Case "010101" LabeMODE.Caption = "USB" Case "010201" LabeMODE.Caption = "AM" Case "010301" LabeMODE.Caption = "CW" Case "010401" LabeMODE.Caption = "RTTY" Case "010501" LabeMODE.Caption = "FM" End Select End If If cShowFlag = 1 Then 'パソコンから連続周波数変更信号がある時は Rig からの信 号を表示しない Else TextBox1.Text = Format(F, "####.000.00") TextBox6.Text = DI$ End If If InStr(FH$, "8145") <> 0 Then TextBox1.Text = "" End If D$ = "": X$ = "" End If D$ = X$ + D$ Next K Loop '---End Sub

(7)

7

****************************************

④ 初期設定画面のラジオボタンやフレームにかかわる VBA の記述

Private Sub cmdExit_Click( ) Dim myOptionbutton As Control Dim entData As String

Dim fjData As String Dim myCOM As String Dim myCOMNUM As Integer Dim myBOU As Integer

Dim myRIG As String

For Each myOptionbutton In FrameBou.Controls If myOptionbutton.Value = True Then myBOU = myOptionbutton.Caption End If

Next myOptionbutton

For Each myOptionbutton In FrameCom.Controls If myOptionbutton.Value = True Then myCOM = myOptionbutton.Caption End If

Next myOptionbutton

Select Case myCOM

Case "COM1": myCOMNUM = 1 Case "COM2": myCOMNUM = 2 Case "COM3": myCOMNUM = 3 Case "COM4": myCOMNUM = 4 Case "COM5": myCOMNUM = 5 Case "COM6": myCOMNUM = 6 Case "COM7": myCOMNUM = 7 Case "COM8": myCOMNUM = 8 Case "COM9": myCOMNUM = 9 Case "COM10": myCOMNUM = 10 Case "COM11": myCOMNUM = 11 Case "COM12": myCOMNUM = 12

(8)

8

End Select

For Each myOptionbutton In Frameicom.Controls If myOptionbutton.Value = True Then myRIG = myOptionbutton.Caption End If

Next myOptionbutton

For Each myOptionbutton In Frameyesu.Controls If myOptionbutton.Value = True Then myRIG = myOptionbutton.Caption End If

Next myOptionbutton

For Each myOptionbutton In Framekenwood.Controls If myOptionbutton.Value = True Then

myRIG = myOptionbutton.Caption End If

Next myOptionbutton

Sheets("予備").Select

Range("A1").Value = TextBox1.Value 'コールサイン

Range("A2").Value = myCOMNUM 'COM ポート

Range("A3").Value = myBOU 'ボーレート Range("A4").Value = myRIG 'リグ Sheets("ALL").Select Application.DisplayFullScreen = True Application.WindowState = xlMinimized Unload frmConfig frmMenu.Show End Sub **************************************** ⑤ スピンボタンの VBA は概略次のように記述します。 セルを下方向へ移動

(9)

9

If ActiveCell.Row <= myRow Then ActiveCell.Offset(1, 0).Activate End If

End Sub セルを上方向へ移動

Private Sub SpinButton1_SpinUp( ) '上↑

If ActiveCell.Row >= 2 Then

ActiveCell.Offset(-1, 0).Activate End If

End Sub セルを左方向へ移動

Private Sub SpinButton2_SpinDown( ) '左←

If ActiveCell.Column >= 3 Then ActiveCell.Offset(0, -1).Activate End If

End Sub セルを右方向へ移動

Private Sub SpinButton2_SpinUp( ) '右→

If ActiveCell.Column < myColumn Then ActiveCell.Offset(0, 1).Activate End If

End Sub

現在のシートから前のシートに移動

Private Sub CommandButton18_Click() '[前のシート]

On Error Resume Next

ActiveSheet.Previous.Activate End Sub

現在のシートから次のシートに移動

Private Sub CommandButton19_Click( ) '[次のシート]

On Error Resume Next ActiveSheet.Next.Activate End Sub

⑥ Excel VBA のキーワード

ブック :

(10)

10

セル :

マクロ :Excel での操作内容を記録し、それを何時でも実行できるよう にしたもの。

BVA :Visual Basic for Application の略で Office のアプリケーシ ョンで処理を自動実行するためのプログラミング言語。 VBE :Visual Basic Editor の略で VBA によるプログラム作成のため

のアプリケーション。 オブジェクト :VBA の構成要素で Excel ではブック、ワークシート、セルを いう。 プロパティ :オブジェクトの属性を表すもので、例えば「セルA1 の文字の サイズが12ポイント」とか「1つ目のワークシート名が『9 月度交信記録』」というようにオブジェクトの状態を表す。 メソッド :「ワークシートを追加する」とか「セルA1 を削除する」とい うように、オブジェクトにどのような動作をさせるかを指示 する時に使う。 コレクション :オブジェクトの集まり。 プロシージャ :Excel のマクロを VBA でプロシージャと言い、処理の実行単 のこと。 ステートメント :ロシージャの構成要素のひとつで、プロシージャ内の一行一 行をステートメントと言い一行が一つの命令文になる。 コメント :ロシージャの構成要素のひとつで、ステートメントの先頭に 「‘(シングルクオーテーション)」が入力されている行で、緑色 の文字で表示される。コメント部分はプログラム実行時には 無視されるのでプログラム開発中に一時的に実行したくない 場合や説明文を付けたい時に便利。 キーワード :ロシージャの構成要素のひとつで、VBA で特別な意味を持つ 文字列や記号でキーワードと同じ文字列はロシージャ名(マ クロ名)や変数名に使えない。 Sub プロシージャ :主に処理を実行するロシージャ。 Function プロシージャ :処理をした結果の値を返すプロシージャで Excel のワークシ ートで使う関数のように扱える。 イベントプロシージャ :Excel では「ブックを開く」、「シートを選択する」、「セル内容 を変更する」など特定の操作をした時それをきっかけにプロ シージャを実行することが出来る。このように特定の操作 に反応して自動的に実行するプロシージャの事をイベントプ ロシージャという。

参照

関連したドキュメント

全国 北海道 青森県 岩手県 宮城県 秋田県 山形県 福島県 茨城県 栃木県 群馬県 埼玉県 千葉県 東京都 神奈川県 新潟県 富山県 石川県 福井県 山梨県 長野県 岐阜県 静岡県

72 Officeシリーズ Excel 2016 Learning(入門編) Excel の基本操作を覚える  ・Excel 2016 の最新機能を理解する  ・ブックの保存方法を習得する 73

地域 東京都 東京都 埼玉県 茨城県 茨城県 宮城県 東京都 大阪府 北海道 新潟県 愛知県 奈良県 その他の地域. 特別区 町田市 さいたま市 牛久市 水戸市 仙台市

3.基本料率の増減率と長期係数 ◆基本料率(保険金額 1,000 円につき) 建物の構造 都道府県 北海道 青森県 岩手県 宮城県 秋田県 山形県 福島県 茨城県 栃木県 群馬県

平 成十年 度(第二 十一回 ) ・剣舞の部幼年の部 深谷俊文(愛知)少年の部 天野由希子(愛知)青年の部 林 季永子(茨城) ○

それに対して現行民法では︑要素の錯誤が発生した場合には錯誤による無効を承認している︒ここでいう要素の錯

このような環境要素は一っの土地の構成要素になるが︑同時に他の上地をも流動し︑又は他の上地にあるそれらと

山元 孝広(2012):福島-栃木地域における過去約30万年間のテフラの再記載と定量化 山元 孝広 (2013):栃木-茨城地域における過去約30