素人がLibreOffice Calcで在庫管理フォームのマクロをBasicで組んでみた過程をまとめます。
必要な情報はGoogle検索だけで集めました。
今回はテキストボックスに入力した数値が在庫リストに登録されているか検索するコードを記述してボタンと紐づけします。
テキストボックスに入力した数値が在庫リストに登録されているか検索するコード
テキストボックスに入力した数値が在庫リストに登録されているか検索するために以下のコードを記述しました。
Dim mobjDialog1 As Object
Dim code As Object
Dim num As Object
Dim oDoc As Object
Dim oSheet As Object
Dim oCell As Object
Dim oSearch As Object
Dim objRange As Object
Dim objCursor As Object
Dim i As Integer
code = mobjDialog1.getControl(“TextCode”)
num = mobjDialog1.getControl(“TextNum”)
oDoc = ThisComponent
oSheet = oDoc.getSheets().getByIndex(0)
oCell = oSheet.getColumns.getByIndex(0)
oSearch = oCell.createSearchDescriptor()
objRange = oSheet.getCellRangeByName(“A1”)
objCursor = oSheet.createCursorByRange(objRange)
objCursor.gotoEndOfUsedArea(True)
i = objCursor.Rows.Count
With oSearch
.SearchString = code.Text
.SearchWords = true
End With
oFind = oCell.findfirst(oSearch)
If oFind Then
For s = 0 to i
If oSheet.getCellByPosition(0,s).String = code.Text Then
code.Text = oSheet.getCellByPosition(0,s).String
num.Text = oSheet.getCellByPosition(1,s).String
End If
Next s
Else
MsgBox( code.Text + “はありません”)
End If
End Sub
検索ボタンにコードを紐づけ
検索のマクロができたので、検索ボタンと紐づけをしていきます。
Dialog1 → 検索ボタン選択 → イベントタブ → マウスボタンを離したとき「…」の順に選択します。
マクロを押します。
登録するマクロ名(今回はSearchButton_click)を選択してOKを押します。
これでマクロとボタンの紐づけは完了です。
ボタンを押せばマクロが機能するはず。
シート上で動作確認
シート上で確認してみます。
在庫管理フォームのテキストボックスに検索したい数値を打ち込みます。
検索ボタンを押すと…
検索した数値がリストにあったので在庫数が反映されました!
ちなみに検索した数値がリストに無かった場合はメッセージで知らせてくれます。
次回は在庫数の増減ボタンを作っていきたいと思います。
在庫管理フォームのマクロをBasicで組んでみたまとめはこちら。
コメント