2011年5月31日火曜日

文字列関数 (2)

文字列関数編、第二回。
  
Sub ExampleStringFunctions2()
       Dim objSheet As Object
       Dim objCell As Object

       Dim strText As String
       objSheet = ThisComponent.CurrentController.ActiveSheet
       '
       'Mid 関数 (1)
       objCell = objSheet.getCellRangeByName("A4")
       objCell.String = Mid("ABCDEFGHI", 2, 3)
       objCell = objSheet.getCellRangeByName("B4")
       objCell.String = Mid("ABCDEFGHI", 2, 3)
       objCell = objSheet.getCellRangeByName("C4")
       objCell.String = Mid("あいうえおかきくけこ", 3, 4)
       '
       'Mid 関数 (2)
       strText = "ABCDEFGHIJ"
       Mid(strText, 5, 2) = "xy"
       objCell = objSheet.getCellRangeByName("A5")
       objCell.String = strText
       '
       'Mid ステートメント (3)
       strText = "ABCDEFGHIJ"
       objCell = objSheet.getCellRangeByName("A6")
       Mid(strText, 5, 2, "いう")
       objCell.String = strText
       '
       'Mid ステートメント (4)
       strText = "ABCDEFGHIJ"
       objCell = objSheet.getCellRangeByName("A7")
       Mid strText, 5, 2, "はひ"
       objCell.String = strText
End Sub
  
上記マクロの実行結果は下図の通り :
  
1. Mid 関数
   指定した文字列より指定した部分を取り出す。書式は下記の通り :
  
      Mid(Text, StartPosition [, Length])
  
   Text には文字列、または、String 型の変数を指定する。
   StartPosition には取得したい文字列の開始位置を指定する。
   Length には取得したい文字列の文字数を指定する。省略可。省略した
   場合StartPosition から文字列の末尾までの文字列が取り出される。
   戻り値として、取り出された文字列が返される。
  
   以上が Calc のヘルプにも載っている Mid 関数の説明である。上記
   サンプルコードの「 Mid 関数 (1) 」の部分のコードである。
   以下は、サンプルコードの「 Mid 関数 (2) 」について。Calc のヘルプに
   は載っていないが、昔 Visual Basic で使った技なので、Calc Basic で
   試したところ、ちゃんと動いたので、以下、それについて述べる。
  
   Mid 関数を用いて、文字列の一部分を置き換えることができる。書式は
   下記の通り :
  
      Mid(TextStartPositionLength) = NewText
  
   この場合、文字列、または、文字列変数の Text のうち、StartPosition
   から Length で指定した文字数分だけ NewText で置き換わる。但し、
   NewText の文字数は、Length で指定した文字数以下でなければならない。
   後述の Mid ステートメントと同様の機能を、Mid 関数を用いて実現すること
   ができる (ようである、少なくとも現バージョンでは)。
  
2. Mid ステートメント
   指定した文字列の一部分を、他の文字列に置き換えるためのステートメント。
   書式は下記の通り :
  
      Mid(TextStartPositionLengthNewText)
  
   または、下記の記述もできるらしい :
  
      Mid TextStartPositionLengthNewText
  
   各引数は、上述のMid 関数と同様である。Text の一部分が NewText
   置き換わるが、NewText の文字数は Length を超えてはならない。

0 件のコメント:

コメントを投稿