[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ドロップダウンの文字数上限』(matatabi)
VBA超初心者です。
ドロップダウンのリスト元が多すぎて毎回保存するとブックが破損してしまいます。(試しにリストシートの項目を減らしたら改善しました)
255文字が上限らしいのですが、255文字以上を指定する方法はあるのでしょうか。。。
他力本願で申し訳ないです。どなたか教えてください。
下記コードです。
Sub ドロップダウン作成()
Dim i As Long, k As Long, Lst, Mot
' リストシートからデータを取得 With Sheets("リスト") Lst = Application.Transpose(.Range("G2", .Cells(Rows.Count, 7).End(xlUp))) End With
' 入力シートを選択 Sheets("入力シート").Select
入力シートの各行に対して処理を実行 For i = 2 To Cells(Rows.Count, 3).End(xlUp).Row リストを生成 Mot = Filter(Lst, Cells(i, 11), True) 結果が存在する場合の処理 If UBound(Mot) >= 0 Then ' セルにドロップダウンリストのバリデーションを追加 With Cells(i, 12).Validation .Delete .Add xlValidateList, Formula1:="" & Join(Mot, ",") & "" End With End If Next End Sub
< 使用 Excel:Excel2016、使用 OS:Windows10 >
>255文字が上限らしいのですが、255文字以上を指定する方法はあるのでしょうか。。。
上限を越えたら、そのセルに対応するリストはどこかのセル範囲に書き出し、 その範囲を元の値として指定する。
(半平太) 2023/09/24(日) 13:42:33
確かに原因不明ですが異常事態に陥りますね。
で、ご質問は、 255という上限があるとして、なんらかの方法で、その制約をなんとか突破できないか ということなんでしょうか?
たぶん、それは難しいと思います。 一般的な話として、Excelの制限をマクロで突破するという例は無いように思います。 マクロはそういう位置づけのものではありません。
で、どうするかですが、 そもそもそのように長いものを直接選択するのはハンドリングしにくいはずなので、 ・略称 ・文字列本体 の二つに分けて、 ・入力規則での選択は"略称"を通じて行い、 ・事後的にそれをもとに、別セルで本体に変換する といった方法をとるのがよいのではないかと思います。
# そういえば、少し前に、配列を入力規則のリストに設定したいという話がありました。 # その後、音沙汰無しになっています。 # 同じ方でしょうか?(違っていたら失礼します)
(xyz) 2023/09/24(日) 19:36:03
p.s
xyz 様
すみませんが今回初めての投稿になります。
(matatabi) 2023/09/24(日) 21:19:06
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.