Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 7 Professional : Excel 2010)
Listviewでの表示形式について
投稿日時: 19/01/05 08:26:29
投稿者: R2D2

Listviewの表示形式について質問させていただきました。
 
下記の様なコードでセルAB〜AG列までの内容をListviewに表示しています。
AE列セル上は”%”表示なのですが、Listviewに表示すると%表示になりません。
Listview上でも%表示にするには、どの様にすればよいでしょうか?
 現状:AE1セル:100% →Listviewでは、1と表示します。
 
        For i = 6 To .Range("AA" & Rows.Count).End(xlUp).Row
            With ListView1
                With .ListItems.Add
                    .Text = Range("AB" & i).Value
                    .SubItems(1) = Range("AC" & i).Value
                    .SubItems(2) = Range("AD" & i).Value
                    .SubItems(3) = Range("AE" & i).Value
                    .SubItems(4) = Range("AF" & i).Value
                    .SubItems(5) = Range("AG" & i).Value
                End With
            End With
        Next i

回答
投稿日時: 19/01/05 10:54:01
投稿者: WinArrow
投稿者のウェブサイトに移動

引用:

AE列セル上は”%”表示なのですが、Listviewに表示すると%表示になりません。
Listview上でも%表示にするには、どの様にすればよいでしょうか?
  現状:AE1セル:100% →Listviewでは、1と表示します。

 
説明が矛盾していませんか?
 
%表示にするには、
Range("AE1").Value
の代わりに 
Range("AE1").Text
を使えばよいです。
 
>Listviewでは、1と表示します。
は、%表示ではありません。

回答
投稿日時: 19/01/05 10:57:38
投稿者: simple

StyleとかNumberFormatLocalなどの属性を持つワークシートのセルと違って、
単にテキストを保持するだけでしょうから、
Format関数でパーセント形式に変換したテキストを書き込むのでしょう。
例:
.SubItems(3) = Format(Range("AE" & i).Value ,"0%")
 
# 動作確認していませんので、確認と、必要ならば修正はそちらで実行してください。

回答
投稿日時: 19/01/05 13:20:09
投稿者: WinArrow
投稿者のウェブサイトに移動

>現状:AE1セル:100% →Listviewでは、1と表示します。
 
について、
現状:AE1セル:100% →Listviewでは、1と表示されてしまいます。
のように説明しないと、誤解されてしまいます。
 

投稿日時: 19/01/05 18:41:37
投稿者: R2D2

simpleさん
 
いつも回答及び、解説ありがとうございます。
記載いただいた内容で、Listview側でも%表示するようになりました。
ありがとうございました。
 
WinArrowさん
 
誤解を招くような質問の記載をしてすいません。
以後、気を付けます。