【LibreOffice Calc】在庫管理フォームのマクロをBasicで組んでみた⑤テキストボックスの数値を検索する

素人がLibreOffice Calcで在庫管理フォームのマクロをBasicで組んでみた過程をまとめます。

必要な情報はGoogle検索だけで集めました。

今回はテキストボックスに入力した数値が在庫リストに登録されているか検索するコードを記述してボタンと紐づけします。

スポンサーリンク

テキストボックスに入力した数値が在庫リストに登録されているか検索するコード

テキストボックスに入力した数値が在庫リストに登録されているか検索するために以下のコードを記述しました。

Sub SearchButton_click

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で組んでみたまとめこちら。



コメント

タイトルとURLをコピーしました