• 締切済み

エクセル 図形を文字として変換したい

図形で認識されている花丸マークが、A列内にランダムに配置されています。 テーブル化して、フィルターにかけたりしたいのですが、この図形を、文字として返したりする方法はありませんか? 図形が入っているセルと入っていないセルを区別できれば, どのような方法でもかまいません。 よろしくお願いいたします。

みんなの回答

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

エクセルでは、図形はセルの上に載ってるだけで、セルの中にあるワケじゃありません。 フィルタを掛けたりとかデータとして扱えるのは、あくまでもセルの中に記入されているものだけです。 なので図形とは別に、そのセル(の上)に図形が載ってるのか載ってないのかを示す「何か」を、実際に各セルの中に記入してやらないとご相談でヤリタイことは実現しません。 というワケで 手順: ブックを開く ALT+F11を押す 現れた画面で挿入メニューから標準モジュールを挿入する 現れたシートに下記をコピー貼り付ける Public Function getShapeName(Optional ByVal Target As Excel.Range) As String  Dim s As Shape  Application.Volatile  If Target Is Nothing Then   Set Target = Application.Caller  Else   Set Target = Target(1)  End If  For Each s In Application.Caller.Parent.Shapes  If s.TopLeftCell.Address = Target.Address Then   getShapeName = s.Name   Exit Function  End If  Next End Function ファイルメニューから終了してエクセルに戻る A列のセルに =getshapename() と記入、表の下端までコピー貼り付ける 必要に応じてセルの計算結果を目に見えないように(簡単な例:フォントの色を白く)しながら、関数の計算結果を元にしてフィルタ等を操作する。 #注意 シート上に図形を「置いた・消した・移動した」だけでは、セルの中身は何も変わってないので、その時は例えばF9キーを一回押すなどして関数を再計算させる #参考 =getshapename(A1) のようにセルを指定すると、指定したセルに図形が載っていれば計算する

関連するQ&A