|
▼かみちゃん さん:
>>>ListBoxのClickイベントを使うと、Clickしたときに動きますので、
>>>ひとつだけ選ぶというのであれば、ComboBoxのほうが簡単です。
>>
>>ComboBoxは検索したときに一覧表示で出ないのでいかがなものかな
>
>なるほど。
>でも、ListBoxの選択肢がたくさんあると、結局ComboBoxと同じように縦スク
>ロールで探さないといけないですよね。
>後は、配置したときには、1データ分の縦幅で済みます。選択するときだけ
>▼でプルダウン表示すれば一覧は見えますから・・・
>複数選択する必要がないのなら、値の取得をするコードも簡単なことから、
>ComboBoxがおすすめですけど、それでも、ListBoxにしますか?
かみちゃんのお勧め通りComboBoxでやってみます。
>>>>>>その上で全角半角・大文字小文字を何とかなりませんか・・・
>>>>>
>>>>>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.全角半角、大文字小文字統一処理は可能か?
上のコードのSub Sample1()実行してみましたが
いまいち使い方が解りませんsample1を実行すると
MsgBoxが表示され元データ 6byte等表示されますが
エクセル上で(テキスト.txt登録前)に変換させるプログラムですか?
>4.2.で反映されたListBox(またはComboBox)からセルへの転記は、CommandButtonをClickしたとき?
ハイそうです。
>というところでしょうか?
かみちゃんさん下記のエクセルからの読込ですが
今現在読みこんでくるのは
操作を行ったsheetのA1からのデータなんですが
コード.xlsを読んでいない
下記間違ってます
Private Sub UserForm_Initialize()
Dim ws As Worksheet
Set ws = Workbooks("コード.xls").Sheets("Sheet1")
With ws.Range("A1", ws.Cells(Rows.Count, 3).End(xlUp))
Me.ListBox1.ColumnCount = .Columns.Count
Me.ListBox1.ColumnWidths = "30 pt;50 pt;40 pt"
Me.ListBox1.RowSource = .Address
End With
End Sub
希望こんな感じです。よろしくお願いします。
紹介いただいたダイアログ今テスト中です。
|
|