- ベストアンサー
シート上に指定した列を表示するエリアを作りたいII
- シート上に指定した列を表示するエリアを作りたいII。宜しくお願いします。
- Excelファイルの1〜5行目を空白にし、操作手順を実行しています。しかし、保存後に起動してもテキストボックスの内容が変わらず、テキストボックスのサイズも元に戻ってしまいます。どのように解決すればいいでしょうか?
- ExcelのVBA設定が動作しない問題が発生しており、解決策が分かりません。具体的な問題は、Excelファイルをxlsxからxlsm形式で保存した後、起動するとテキストボックスの内容が変わらず、テキストボックスのサイズも元に戻ってしまうことです。解決方法を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
質問のズバリ原因は判りません。 納得する回答が出ればよいが、あまり深追いすることを避けてはどうか。 多分質問者がしたいことを推定して、掲示のコードも使いながら、やってみましたので参考に。 (1)エクセル2010で新規ブックを開く (2)下記の小生のサンプル例のデータをコピーして、シートのA1:D4に貼り付りつけ No タイトル 内容 時間 1 雨 男女の別れ 30分 2 日本の問題 日本の人口問題 45分 3 映画の歴史 娯楽編 20分 (3)開発ーVisualBasic (4)VBE画面で General部のWorksheetを選ぶ Declaration部でSelection_Changeを選ぶ (5)Private Sub Worksheet_SelectionChangeと End Sub との、その間の空白行に、下記の中身をコピペ Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Intersect(Target, Range("A1").CurrentRegion) Is Nothing Then Exit Sub Else For Each sha In ActiveSheet.Shapes If sha.Name = "MTxt" Then sha.Delete Next '-- ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, Target.Left + 30, Target.Top + 30, 270, Target.Height * 4).Select Selection.Name = "MTxt" Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = _ "タイトル名:" & Cells(Target.Row, "B").Value & Chr(13) & _ "内容 :" & Cells(Target.Row, "C").Value & Chr(13) & _ "時間 :" & Cells(Target.Row, "D").Value Target.Select End If End Sub (6)シートの画面に戻って 第2-4行のどれかをクリック(選択) クリックしたセルの近くにタイトルー内容ー時間がテキストボックスに表示される。 それ以外のセルを選択すると画面上は何も変わらない。 (7)保存はマクロ付きのブックとして保存のこと。
補足
質問の「xlsx」ファイルから「xlsm」ファイルへ保存すると「VBA」の設定が動作しません。ですが、マクロのセキュリティー設定を調べましたら「警告を表示して・・・マクロを無効」にチェックが入っていました(デフォルト値でしょうか?)。全てのマクロを有効にするにチェックしましたところ、保存後に開いても問題なく動いています。「ひとつ解決しました」 [もうひとつ解決したいこと] 質問させて頂きました「1~5行目に作成されるテキストボックスのサイズ変更しても元に戻ってしまいます。サイズを変更する方法「固定化」を教えて下さい。」ですが、文字量が多いので横に広げて表示させたいと思います。理由ですが、テキストボックスですのでスクロールしての表示ができませんので、内容の殆どが表示できない為です。以上ですが、宜しくお願いします。