InStr関数が、大文字小文字を区別出来ない †
- ページ:FrontPage
- 投稿者: Kuma
- 優先順位: 普通
- 状態: 完了
- カテゴリー: Calc 表計算
- 投稿日: 2006-04-30 22:59:52 (日)
- OS: Win98,Linux
- バージョン: 2.0.2
メッセージ †
OOoBASICで文字位置を検索するInStr関数を下記の様に使いました。
A1セルに文字列 DD36ddnn を打ち込んだ後下記マクロを走らせる。
Sub Test oSheet=ThisComponent.Sheets(0) oCell=oSheet.GetCellRangeByName("A1") moji=oCell.String MsgBox InStr(moji,"dd") End Sub
するとメッセージダイアログは1を表示します。正しい値は5です。
大文字のDDと小文字のddを区別出来ないようです。ExcelVBAの場合は区別できます。
これはバグでしょうか、それとも仕様でしょうか。
お分かりになりましたら、宜しくご教示お願い致します。
- ヘルプによれば
M.Kamataki (2006-05-01 00:14:45 (月))
Sub Test oSheet=ThisComponent.Sheets(0) oCell=oSheet.GetCellRangeByName("A1") moji=oCell.String MsgBox InStr(1,moji,"dd",0) End Sub
だと思います。メッセージダイアログの値は「5」になります。
ほぼ1年ぶりのBasic。
- そうでしたか!
Kuma (2006-05-01 07:17:10 (月))
Kamatakiさん、早くのご回答有難う御座います。おかげでマクロを仕上げる事が出来ます。
『InStr関数はBASIC共通関数なのでExcelと同じ書式』と思い込んでいて、また、シート関数では無いのでhelpでは調べられないと思っていました。大変お騒がせしてしまい申し訳有りませんでした。
- そういえば
M.Kamataki (2006-05-01 10:46:52 (月))
Basicの関数は、ヘルプを開いて[目次]−[マクロとプログラミング]−[コマンドリファレンス]で参照できるのですが、キーワード検索ではなぜか検索できませんね。これはこれで考えないといけないかも。
わたしの場合、Basicはヘルプが頼りなので、今回はKumaさんのソースがあったので、回答できました。Kumaさんのほうが、Basicは使いこなされているようですので、できれば回答側でも協力ください。