|
こんにちは。かみちゃん です。
>>ListBoxのClickイベントを使うと、Clickしたときに動きますので、
>>ひとつだけ選ぶというのであれば、ComboBoxのほうが簡単です。
>
>ComboBoxは検索したときに一覧表示で出ないのでいかがなものかな
なるほど。
でも、ListBoxの選択肢がたくさんあると、結局ComboBoxと同じように縦スク
ロールで探さないといけないですよね。
後は、配置したときには、1データ分の縦幅で済みます。選択するときだけ
▼でプルダウン表示すれば一覧は見えますから・・・
複数選択する必要がないのなら、値の取得をするコードも簡単なことから、
ComboBoxがおすすめですけど、それでも、ListBoxにしますか?
>>>>>その上で全角半角・大文字小文字を何とかなりませんか・・・
>>>>
>>>>ListBox表示するときに、全角・半角、大文字・小文字を統一できたらいいのですが、
>>>>そういうわけにはいきませんか?
>>>会社の会計専用ソフトのデータを引き出してきていますので
>>>出来ればそのまま使いたいのですが
>>>千数百件もあると見落としもあると思うので・・・
>>
>>見落としはないと思いますよ。
>>なぜなら、ListBoxに反映させるときに、プログラムが統一処理しますから、別に
>>yasuさんご自身が元データを修正してくださいというわけではないです。
>>プログラムで処理する際も、あくまでListBox上の話です。元データはそのままで
>>す。
>
>よく解らないのですが専用ソフトからコードと社名のみ出力したデータを
>貰うのですがそのデータ自体カタカナ名がの全角だったり、半角だったり
状況は、私のところでも同じなので、よくわかります。
最終的には、全角・半角、大文字・小文字を無視(プログラム内部で統一変換)
して処理することができますから、そのようなコードにすればいいです。
変換処理は、たとえば、以下のような感じです。
例では、英字のサンプルになっていますが、数字やカタカナでも一緒です。
また、変換後のバイト数(全角2バイト、半角1バイト)を確認していただく
ために少々複雑なように見えますが、ポイントは、StrConv関数です。
標準モジュールに貼り付けて確認してみてください。
Sub Sample1()
Dim strData As String
strData = "ABcd"
MsgBox _
"元データ " & strData & " " & _
LenB(StrConv(strData, vbFromUnicode)) & _
"Byte" & vbCrLf & _
"全角に統一 " & StrConv(strData, vbWide) & " " & _
LenB(StrConv(StrConv(strData, vbWide), vbFromUnicode)) & _
"Byte" & vbCrLf & _
"半角に統一 " & StrConv(strData, vbNarrow) & " " & _
LenB(StrConv(StrConv(strData, vbNarrow), vbFromUnicode)) & _
"Byte" & vbCrLf & _
"小文字に統一 " & StrConv(strData, vbLowerCase) & " " & _
LenB(StrConv(StrConv(strData, vbLowerCase), vbFromUnicode)) & _
"Byte" & vbCrLf & _
"大文字に統一 " & StrConv(strData, vbUpperCase) & " " & _
LenB(StrConv(StrConv(strData, vbUpperCase), vbFromUnicode)) & _
"Byte" & vbCrLf & _
"全角大文字に統一 " & StrConv(StrConv(strData, vbWide), vbUpperCase) & " " & _
LenB(StrConv(StrConv(StrConv(strData, vbWide), vbUpperCase), vbFromUnicode)) & _
"Byte" & vbCrLf & _
"半角小文字に統一 " & StrConv(StrConv(strData, vbNarrow), vbLowerCase) & " " & _
LenB(StrConv(StrConv(StrConv(strData, vbNarrow), vbLowerCase), vbFromUnicode)) & _
"Byte"
End Sub
>>それにしても、会計専用ソフトですか・・・
>>私も市販の会計ソフトのデータをExcelへ展開するなどの作業はマクロで処理していますね。
>かみちゃんさんと違いマクロ処理などできませんね・・・
>出来るようになりたいですが少しずつここの掲示板を参考にしながら
>徐々にやりたいと考えています
私も同じようなことをしていますので、何かのお役に立てるのならば、今後ともよろしく
お願いします。
ところで、後問題として残っているのは、
1.ListBoxに一旦全体のデータを反映させるのか?
2.検索条件に一致したもののListBoxはComboBoxにではいけませんか?
3.全角半角、大文字小文字統一処理は可能か?
4.2.で反映されたListBox(またはComboBox)からセルへの転記は、CommandButtonをClickしたとき?
というところでしょうか?
|
|