[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『コメント表示方法』(米米)
約100列*2000行のデータシートがあり、いたるところのセルにコメントが挿入されています。コメントの文字数は2〜3文字からB5サイズくらいとまちまちです。
いくつかの列、または行を非表示にしてコメントを編集ることがあるのですが、そのセルからとんでもなく離れたところにコメントが表示されたり、変更したコメント枠の大きさが勝手に変わってしまて、全ての文字が表示されないくらい小さくなったり、逆にとんでもなく大きくなったりと編集作業に苦労してます。
コメントを編集する際、また単に表示する際、文字数に見合ったコメント枠になるよう、またコメントを挿入したセルのすぐ隣辺り(左隣が都合がいいです)に表示されるように、既に挿入されたコメント全て編集する方法はないでしょうか。(一つ一つ編集するには数が多すぎです、、、)
コメントは非表示にしていた場合、セルの上にポインタを近づけた時 勝手に表示してくれるので。。。
テキトーなタイミングで↓のマクロを実行する事にする。 標準モジュールに '------ Sub コメント表示位置変更() Dim i As Long With ActiveSheet For i = 1 To .Comments.Count With .Comments(i) .Shape.TextFrame.AutoSize = True .Shape.Left = .Parent.Left + 60 .Shape.Top = .Parent.Top + 15 End With Next End With End Sub '------
或いは、セルを選択した時にその都度変更で良ければ、シートモジュールに '------ Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Target.Comment Is Nothing Then With Target.Comment .Shape.TextFrame.AutoSize = True .Shape.Left = .Parent.Left + 60 .Shape.Top = .Parent.Top + 15 End With End If End Sub '------
って感じでどうでしょう。
(HANA)
いただいたマクロを実行しました。メモ枠が文字数に応じて編集されていい感じですが、問題が現時点で以下の3点あるため、現行のまま作業することに決めました。ありがとうございました。
1、ある列にフィルター(例えば、Aという文字や88、109などの行番号の数字)をかけると、4つぐらいしかピックアップされなくなってしまう。(約2000列中、該当データは100ぐらいあるのに先頭の(上から)4つがいしかフィルターされず、その4つ以下はフィルターされないそのままの状態)
2、枠を手動で指定した場合は、枠幅によりメモ文章が自動で改行されるのに対し、この方法だと文章に適当な位置で改行が入ってないと、文が終わるまで延々と横幅として設定されてしまうため見づらくなってしまう。(メモ表示とシートの横スクロールが同時にできないため)
3、列非表示でメモを編集する場合はセルの右横にメモが表示されるが(改善された)、行非表示では元の位置(?)にメモが表示される(改善されてない)ため編集が面倒。(以前よりは横のズレがない分いいのですが)
1に関しては、今回の件とは別の問題の様に思えます。 「フィルター」と言うのは、オートフィルタの事でしょうか? フィルターの詳細設定の事でしょうか?
2に関しては、自動サイズ調整後の横幅を確認して 一定以上の場合 指定した幅と高さに変更する事は出来ると思います。
'------ Sub コメント表示位置変更2() Dim i As Long With ActiveSheet For i = 1 To .Comments.Count With .Comments(i) .Shape.TextFrame.AutoSize = True If .Shape.Width > 100 Then .Shape.Width = 100 .Shape.Height = 120 End If .Shape.Left = .Parent.Left + 60 .Shape.Top = .Parent.Top + 15 End With Next End With End Sub '------
3に関しては、どう言った事かよく分からないです。
(HANA)
1について
簡単に説明すると、A列に氏名、B以降の約100列はその氏名に関するデータとなっています。例えばB列は出身地、C列は血液型、Dは男、Eは女などです。DとEは異なる性別の場合は何も入力されていません。(例、女の場合はD列にはデータなし)
1行目はデータではなく各項目名が入力されています。
1行目を選択してデータリボンのフィルターをクリックすると、フィルターが設定できるようになります。(これをオートフィルターというのか分かりませんが)
で、今まではA1のフィルターのドロップダウンリスト▼をクリックするとA列に入力された全てのデータがリスト表示されていましたが、戴いたたマクロ実行後に▼をクリックしても上位20ヶ位(1〜20行くらいのデータ)しかリスト表示されなくなってしまいました。
また、今まではD列のような場合、ドロップダウンリストのにある「すべて選択、男、空白セル」の男だけにチェックを入れてフィルターすれば、この列に男が入力されている行データのみ表示されていましたが、戴いたマクロ実行後は上位20行くらいはフィルターがかかるものの、それ以降はフィルターがかからずそのまま表示されます。(1〜20行のD列に男が入力されいてる行データが6ヶある場合、この6ヶ以外は表示されなくなりますが、21行以降はD列に男が入力されていても、されてなくてももとのまま順番に表示される)
なお、上位20くらいとは大体でどのくらいかというのは未確認です。
3につてい
例えば、上記の男でフィルターをかけ、結果1200行目(何行でもいいのですが)のデータが上の方に表示されたとします。(フィルターではなく間の行の非表示でも同じです)
ここでこの行にあるコメントを編集すべくコメント編集を選択すると、コメント枠がとんでもなく下の方(コメント挿入された位置か不明ですが)に表示されるので編集が面倒だということです。
私だけかもしれないので何とも説明しづらいのですが、、、
以前は列に対しても同様の現象(非表示にして編修するととんでもない右に表示)だったので、縦と横でとんでもない右下の方に表示されたりしたのですが、このマクロ実行後は下に関してはそのままですが、右に関しては改善されてます。
ありがとうございました。
1に関してですが >上位20行くらいはフィルターがかかるものの、それ以降はフィルターがかからずそのまま表示されます。 この時、行番号が表示されている部分の数字は どの範囲が青い色で表示されて居ますか? 絞り込みを行った状態で、行番号の数字が青色で表示されている範囲が フィルタの設定されている範囲です。
20行位以降は、通常の黒い文字の色で表示されている場合、何かの原因で フィルタの設定範囲が狭く成って仕舞っているのではないかと思います。
現在のデータではなく、簡単なデータを作ってやってもらうとどうですか? 全て表示させた場合は?絞り込みを行っている場合は?等 再現手順がわかれば教えてもらえると良いと思います。
今回は、コメントに関してしか処理をしていないので、フィルタの範囲が勝手に変わって仕舞うのは不思議ですが 実際も、フィルタの範囲が勝手に変わっていて どんなデータでも常にその症状が起きる様で有れば マクロで再設定までするのも 一つの方法かもしれません。 因みに、2002で簡単な表を131行目まで作成しやってみましたが フィルタの範囲が変わった感じは有りませんでした。
3に関してですが 絞り込みを行う前に(1200行目に有る状態で)マクロを実行し位置を調整後 絞り込みを行い(上の方に表示された状態で)コメントの編集を行おうとしませんでしたか?
その場合は、絞り込み後 再度マクロを実行し コメントの編集を行ってみて下さい。
(HANA)
3に関して >>絞り込み後再度マクロを実行して下さい と書きましたが、もしかしたら コメントの書式設定のプロパティで ●セルに合わせて移動するがサイズ変更はしない(M) を選ぶと良いのかも知れません。
.Shape.Top = .Parent.Top + 15 の下にでも .Shape.Placement = xlMove を入れて貰うと、一緒にプロパティが変更になります。
現在何が選択されているのか確認してから実行して下さい。 (何か問題が有っても、戻すの矢印ボタンでは戻らないので。。。)
(HANA)
1に関して。
簡単なデータで試してませんが現状報告です。
先日申し上げましたA列に氏名(異なった文字列)が入力されているよ言うな場合、フィルターのドロップダウンリストに表示されるデータは21行目までです。
また、D列(性別が男なら男と入力、女なら空白)のような場合、ドロップダウンリストの男だけチャックしフィルターして影響を受けるのは21行までとなります。ですので21行めまでにD列に男がある行データが3つあれば、その3つがフィルターに引っかかり(行番号青)22行以降はそのまま(行番号黒)表示されます。もし21行目までにD列に男がなければ、ドロップダウンリストに男は表示されません。
3に関して。
絞り込み(その度範囲は変わります)後にコメント編集という作業が頻繁にあるため、絞り込み後に毎回マクロを実行するのは避けたいです。
3で言いたいことは、フィルターかけても間非表示にしてもコメント見る際、または編集する際、常に適切なコメント枠と位置で表示されると楽だなといった感じです。
いただいた.Shape.Placement = xlMoveでマクロかけたところいい感じで右側にありました。ありがとうございました。
コメント枠に関してもう一越えお力添えいただきたいです。
最初に戴いたマクロでは幅が固定ではなかったので(改行のない)長い文章では難ありでしたが、「OK」などといった短い文には有効でした。
次に戴いたマクロは枠が固定となるものの、長文にしては小さすぎ、短文にしては大きすぎとなってしまいました。
で、OKなどの短文に対しては最初のまま、長文に対しては横幅は固定(約全角50文字)、下は固定無し(文章が収まるまで枠を広げる)といった感じにしていただけると幸いです。
ただ1の問題がクリアしないとダメなのですが、、、
(コメント表示位置変更2)に関しては OKなどの短文に対しては最初のままが適用に成ると思いますが 成っていませんか?
それとも、短文でもShape.Widthが100を超えるのでしょうか?
幅がどのくらい有れば良いのか解らなかったので「100」にしてあります。 これを変更すれば、横幅は増えます。
全角約50文字の時の幅を教えて下さい。 一つのセルのコメントに関して、幅を変更後 そのセルをアクティブにして Sub コメント幅() MsgBox ActiveCell.Comment.Shape.Width End Sub のコードを実行して下さい。
コメントの幅がメッセージボックスで表示されるので、値を教えて下さい。
また、通常何行程度に成るのか 目安を教えて下さい。
1の問題に関しては、 >22行以降はそのまま(行番号黒)表示されます。 と言う事なので、やはり22行以降はフィルター範囲外に成っている様に思います。
一旦フィルターを解除して、再度設定。 正しく抽出出来る事を確認後、マクロを実行。 して、結果を教えて下さい。
合わせて、簡単なサンプルを新規で作成し 結果を教えて下さい。
(HANA)
1に関して。簡単なデータ(A列に1から1200の通し番号、B列の適当なセルに男、または女の文字列、適当なセルに短文または長文のコメント挿入)でマクロ実行後、フィルターをかけてみたところ問題ありませんでした。
A列のフィルターのドロップダウンリストには1〜1200までありますし、男でフィルターかけると男(21行目以降も)以外表示されません。
また、マクロ実行後フィルターがかからなかった私のデータより、任意の列をテスト用Bookにコピー&ペーストしてマクロ実行後フィルターしてみたところ、こちらも問題ありませんでした。全列試してませんが、、、
3に関して。とりあえず326.25というデータが出ました。この幅くらいあるといいなといった感じです。以降また枠幅を変更するかもしれないのでこの数値(326)を指定すればいいのですね。
OKなどといった短い文は最初の方が適用になってました。マクロがこけた(原因不明のエラー、以降このエラーなし)以降のコメントを見てたみたいです。再度マクロかけましたらきっちりなってました。
ありがとうございました。
1に関して、再度確認して貰いたいのですが 順番として ・マクロを実行して、フィルタを設定 ・フィルタを設定して、マクロを実行 は結果が異なる可能性が有ります。
これから運用を考えると おそらく フィルタが設定してある状態でマクロを実行する と思います。
また、抽出出来なくなったデータも フィルタが設定してある状態でマクロを実行した のだと思います。
>マクロ実行後フィルターがかからなかった私のデータ に関して、同じブックで >>一旦フィルターを解除して、再度設定。 >>正しく抽出出来る事を確認後、マクロを実行。 を確認してみて下さい。
やっぱりダメな場合は、他のパターン 簡単なデータ テスト用Bookにコピー&ペースト でも、通常の運用と同じ流れに成るように マクロの実行とフィルタでの絞り込み作業を行ってみて下さい。
3に関してですが >以降また枠幅を変更するかもしれないのでこの数値(326)を指定すればいいのですね。 横幅に関しては、100の所を326に変更すれば良いですが、縦幅が短いままに成ってしまうので この辺りは調整が必要に成ってくると思います。
↓で試してみて下さい。
'------ Sub コメント表示位置変更3() Const YOKOHABA As Long = 326 '←横幅サイズの値 Dim i As Long With ActiveSheet For i = 1 To .Comments.Count With .Comments(i) .Shape.TextFrame.AutoSize = True If .Shape.Width > YOKOHABA Then .Shape.Height = Int(.Shape.Width / YOKOHABA) * .Shape.Height _ + (Len(.Text) - Len(Replace(.Text, Chr(10), ""))) * 10 .Shape.Width = YOKOHABA End If .Shape.Left = .Parent.Left + 60 .Shape.Top = .Parent.Top + 15 .Shape.Placement = xlMove End With Next End With End Sub '------
テキストの長さや、書き方に依って 縦幅が長すぎたり短すぎたりするかもしれません。 その場合は、結果を確認しながら + (Len(.Text) - Len(Replace(.Text, Chr(10), ""))) * 10 の所で調整してもらえると良いと思います。
今は、拠り所が無いので、改行の数だけ+10して居ます。 実際の状況に依っては、無条件で +○ すれば良いだけかもしれませんし もっと良い算出方法が有るかも知れません。
長めの文章が入っているコメントで確認して調整してもらえると良いと思います。
(HANA)
1に関して
当初は以下の3つのどの状態でマクロかけも、21行目以降フィルターできないという状態でした。
・フィルター全くなしの素の状態
・フィルターボタン押した状態(1列目の各列に▽が付いてフィルターできる状態だがフィルター掛けてない)
・フィルターに条件設定しフィルターかけた状態
が、状況が一転しました。
通常、データリボンのフィルターをクリックすると1行目の項目の各列に▽が表示されます。
しかし、途中まで(A列から50列くらい(右端は未確認))しか▽が表示されていないことに気が付きました。(原因不明ですが)
一旦フィルターを解除した後、再設定し(全列に▽マーク表示)マクロを実行しフィルターしてみたところ、21行以降も問題ありませんでした。
3に関して。
長文のコメント枠は横幅だけ決め、縦は文の量により上下するような設定(縦は最初の様な設定)がベストです。
長いコメントはスクロールできないため下の方が見えなくなってしまいますが、「コメントの編集」を選択すれば、コメント表示しつつ画面もスクロールできるので問題ないです。
ありがとうございました。
1に関しては、何だったんでしょうねぇ。。。 結局「再設定したらOKになった」って事ですよね?
また同じ症状に成るかも知れませんので 「何をやったか」に気をつけておいてもらえると良いと思います。
3に関しては、(コメント表示位置変更3)は縦は上下すると思いますがなりませんか? それとも、「成って、スクロールしないといけなく成るけど それでよい」と言う事でしょうか?
もしも縦が上下されない様であれば、内容の構成を詳しく教えて下さい。 例えば、1行目○文字・2行目△文字・3行目□文字 の様に各行の文字数だけで良いので。
ちなみに、そう言ったコメントが設定してある所は、どのくらい有るのでしょう?
例えば、縦方向もMAXを決めておいて 自動設定で横幅が326を超えたら 326にして縦を上下させるが 縦が○を超える様なら横幅を650にして、縦を上下させる なんて事も出来ると思いますが。。。
(HANA)
1に関して意味分かりません、、、
今までフィルターボタンクリックして全列に▽がつかなかったことなどなかったんですけど、、、とりあえず戴いたマクロで問題なしなので、元Bookのコピー版でテスト期間を経た後、安全が確保され次第マクロ実行します。
今までコメント表示または編集の際、にコメント枠がそのセルから離れていたり、とんでもなく大きくなってたり、小さくなってたりと面倒でした。これ1つ1つ手動で編集するくらいなら我慢しようと思っていましたが、限界がきたため問い合わせた次第です。
重ね重ねありがとうございます。
益々のご健勝お祈り申し上げます。
ってまたとらぶりましたらよろしくお願いします。(米米)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.