かつぎぃてん blog

ざっくばらんに

VBA

VBA で TRIM を使う場合は、これ↓(関数と同じ処理が出来る)

1、セル内の文字の前後の空白を全て削除
2、セル内の文字の途中にある複数の空白を1つにする

Application.WorksheetFunction.Trim(" A B C ") ⇒ "A B C"

 

Sub MojiBunkatu()
Dim lr As Long
Dim lc As Long
Dim ar As Variant
Dim i As Long

lr = 2
Do
ar = Split(Cells(lr, 2), " ")

i = 0
For i = LBound(ar) To UBound(ar)
Cells(lr, 3 + i) = ar(i)
Next i

lr = lr + 1
If Cells(lr, 2) = "" Then
Exit Do
End If
Loop

End Sub

 


Accessのモジュールウィンドウを開いた状態で、メニューより[ツール]-[参照設定]を選択します。
[参照可能なライブラリファイル]の一覧の中から「Microsoft Excel 8.0 Object Library」や、Excelのバージョンによっては「Microsoft Excel 5.0 Object Library」をチェックします。

一例として、Accessのモジュールに次のようなコードを記述し、実行してみます。
Debug.Print Excel.Application.Round(100 / 3, 0)
Debug.Print Excel.Application.RoundDown(100 / 3, 3)
Debug.Print Excel.Application.Sum(10, 20, 30)

 


https://data-by-vba.com/2019/06/07/vba%E3%82%B3%E3%83%BC%E3%83%89%E3%81%A7%E6%96%87%E5%AD%97%E5%88%97%E3%81%8B%E3%82%891%E6%96%87%E5%AD%97%E3%81%9A%E3%81%A4%E6%8A%BD%E5%87%BA%E3%81%99%E3%82%8Bmid-len%E9%96%A2%E6%95%B0/

 


Dim str As Variant

With Range("A1") '←1.値が入っているセルを指定
str = .Value

For i = 1 To Len(str) '2.繰り返し処理Len関数で文字数を取得した文字数分繰り返す

Cells(2, i).Value = Mid(str, i, 1) '3.Mid関数を使用して変数iから1文字目を取り出してセルに入力

Next i
End With