シート上に指定した列を表示するエリアを作りたいII

このQ&Aのポイント
  • シート上に指定した列を表示するエリアを作りたいII。宜しくお願いします。
  • Excelファイルの1〜5行目を空白にし、操作手順を実行しています。しかし、保存後に起動してもテキストボックスの内容が変わらず、テキストボックスのサイズも元に戻ってしまいます。どのように解決すればいいでしょうか?
  • ExcelのVBA設定が動作しない問題が発生しており、解決策が分かりません。具体的な問題は、Excelファイルをxlsxからxlsm形式で保存した後、起動するとテキストボックスの内容が変わらず、テキストボックスのサイズも元に戻ってしまうことです。解決方法を教えてください。
回答を見る
  • ベストアンサー

シート上に指定した列を表示するエリアを作りたいII

シート上に指定した列を表示するエリアを作りたいII。宜しくお願いします。 [環境]MS Office2007(Windows10) [EXCEL情報] ファイル名:ムービーリスト フィールド名:A~H A列:NO「1からの連番で特に意味はない」 B列:タイトル名「約1300ほど」 C列:製作国 D列:ジャンル「アクション・・・他」 E列:主演 F列:実話可否「対象を(実話)と記載」 G列:アカデミー可否「対象を(アカデミー賞)と記載」 H列:内容「映画の解説」 「xlsx」ファイルから「xlsm」ファイルへ保存すると「VBA」の設定が動作しません。プロセスが悪いと思いますが、結局のところ「EXCEL VBA未経験」分かっていないので解決できないでいます。以下に[解決したい内容(自身の勝手ですいません)]を2点あげております。アドバイスをお願い致します。 [解決したい内容(自身の勝手ですいません)] 1,保存後に起動するとテキストボックスは表示されるが、行を選択移動してもテキストボックスの内容が終了時のままです。 ※VBA保存時の手順「上書き保存」→「いいえ」→「EXCELマクロ有効ブック(*,xlsm)」→「保存」 2,1~5行目に作成されるテキストボックスのサイズ変更しても元に戻ってしまいます。サイズを変更する方法「固定化」を教えて下さい。 [やったこと] 1,EXCELファイルの1~5行目を空白としました。 2,操作手順:「開発」→「コードの表示」→「Sheet1(ムービー)」→「アドバイス構文」 Private Sub Worksheet_SelectionChange(ByVal Target As Range)   For Each sha In ActiveSheet.Shapes     If sha.Name = "MTxt" Then sha.Delete   Next   ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 0, 0, 270, 67.5).Select   Selection.Name = "MTxt"   Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = _       "タイトル名:" & Cells(Target.Row, 2).Value & Chr(13) & _       "内容:" & Chr(13) & Cells(Target.Row, 8).Value   Target.Select End Sub 以上ですが、宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.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)保存はマクロ付きのブックとして保存のこと。

eokwave
質問者

補足

質問の「xlsx」ファイルから「xlsm」ファイルへ保存すると「VBA」の設定が動作しません。ですが、マクロのセキュリティー設定を調べましたら「警告を表示して・・・マクロを無効」にチェックが入っていました(デフォルト値でしょうか?)。全てのマクロを有効にするにチェックしましたところ、保存後に開いても問題なく動いています。「ひとつ解決しました」 [もうひとつ解決したいこと] 質問させて頂きました「1~5行目に作成されるテキストボックスのサイズ変更しても元に戻ってしまいます。サイズを変更する方法「固定化」を教えて下さい。」ですが、文字量が多いので横に広げて表示させたいと思います。理由ですが、テキストボックスですのでスクロールしての表示ができませんので、内容の殆どが表示できない為です。以上ですが、宜しくお願いします。

関連するQ&A

  • VBAの設定「2題」

    最初に取り組んだEXCELのVBAですが、何人かの方にアドバイスを戴きましてやっと「まともな質問」ができる様になりました。やりたい事への完成アドバイスをお願いします。 「環境]MS Office2007(Windows10) ・ファイル名:ムービーリスト ・フィールド名:A~H、A列:NO「1からの連番で特に意味はない」、B列:タイトル名「約1300ほど」、C列:製作国、D列:ジャンル「アクション・・・他」、E列:主演、F列:実話可否「対象を(実話)と記載」、G列:アカデミー可否「対象を(アカデミー賞)と記載」、H列:内容「映画の解説」 ・該当シートにVBAを設定したい。 1,前段階で選択した色を消したい。 理由:下記の構文では選択したセルの色は変わるが、前段階で色付けたセルの色は消えない為。 Private Sub Worksheet_SelectionChange(ByVal Target As Range)   Target.Interior.ColorIndex = 6  End Sub 2,下記構文に「1」の構文をコピペして追加すると「1」で設定した機能が動作しない。※「General」→「Worksheet」、「Declaration」→「SelectionChange」の設定ができないのでコピペしました。 理由:「1」と「2」の機能を同時に動作させたい。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) For Each sha In ActiveSheet.Shapes If sha.Name = "MTxt" Then sha.Delete Next ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 0, 0, 1270, 80.6).Select Selection.Name = "MTxt" Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = _ "題名:" & Cells(Target.Row, 2).Value & Chr(13) & _ "内容:" & Chr(7) & Cells(Target.Row, 8).Value Target.Select End Sub 3,分からないこと 内容:下記の構文が記載されているとき、1の構文を追加したい時に「General」→「Worksheet」、「Declaration」→「SelectionChange」が選択できないので、1の構文を貼り付けていますが、正しい方法なのでしょうか。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) For Each sha In ActiveSheet.Shapes If sha.Name = "MTxt" Then sha.Delete Next ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 0, 0, 1270, 80.6).Select Selection.Name = "MTxt" Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = _ "題名:" & Cells(Target.Row, 2).Value & Chr(13) & _ "内容:" & Chr(7) & Cells(Target.Row, 8).Value Target.Select End Sub 以上ですが、宜しくお願いします。

  • シート上に指定した列を表示させるエリアを作りたい

    ご面倒をお掛けしますが、アドバイスをお願いします。 使用エクセルのバージョン:Office 2007 Professonal [エクセルシートの構成] A列:NO「1からの連番で特に意味はない」 B列:タイトル名 C列:製作国 D列:主演 E列:実話可否「対象を(実話)と記載」 F列:アカデミー可否「対象を(アカデミー賞)と記載」 J列:内容「映画の解説」 内容は情報が多いので「行」をクリックする事で、シート内の別エリアに表示させる方法は無いのでしょうか。その他、同じ効果が期待できる方法(行のスクロールでは無く)がありましたら教えて下さい。

  • javaScriptで、テキストエリアのある文字列を見つけて、

    javaScriptで、テキストエリアのある文字列を見つけて、 その行から、1行目と2行目を消すという処理を行いたいのですが、 コーディングがわかりません。 教えて下さい。 (例) 下記のテキストエリアから、「<ターゲット文字列>」を見つけて、 その行から1行目と2行目、つまりは、「さしすせそ」と「たちつてと」を削除したいです。 -----textarea----- あいうえお かきくけこ <ターゲット文字列> さしすせそ たちつてと

  • 複数行の文字列を変数として使う方法

    Excel2010 VBAを使っています。 ファイルAに AAA BBBB CCCCC DD ・・・ というように50行程度に渡って文字列が書かれています。 この文字列をファイルB(これも同じく文字列が書かれています)と合体させるプログラムを作っています。 このプログラムをほかのPCでも使用したいのですが、 xlsmファイルとともにファイルAも同時にコピーする必要があり不便です。 ファイルAの内容を標準モジュールの中に保存したいのですが どのようにすれば良いでしょうか? dim a(50) a(0) = "AAA" a(1) = "BBBB" a(2) = "CCCCC" a(3) = "DD" ・・・ というように配列として保存しておけば、これができるのですが、 いちいち、ダブルクオテーションマークでくくって 上記のようなコードを書くのが面倒です。 例えば、 a = "AAA BBBB CCCCC DD ・・・" のように複数行に渡る文字列を変数として用いたいのですが このようなことは可能でしょうか?

  • テキストファイル読み込みにおける開始行および開始列指定

    最近VBAを始めた者です。 コンマ区切りのテキストファイルの内容をシート上に読み込むプログラムを 書きたいのですが、テキストファイル内に不要な部分があるため、必要な部分のみ 抜き出して読み込みたいと考えています。 具体的なテキストの内容は以下の通りです。 AAA,BBB,CCC,DDD EEE,FFF,GGG,HHH 111,222,333,444 111,222,333,444 111,222,333,444  ・  ・  ・  ・  ・  ・  ・  ・ 行数は特に決まっていませんが1000行程度です。 アルファベットは文字列、数字は数値データです。 このうちの222にあたる列のみを読み取りたいのですが、そのための 読み取り開始行、および開始列の指定方法がわかりません。 クエリを用いた方法でできないことはなかったのですが、クエリテーブルに 残るデータは必要なく、後で消す必要が出てくるためクエリを用いない方法を探しています。 使用ソフトはExcel2007です。 宜しくお願いします。

  • セルの値をテキストボックスに表示したい

    excel-vba初心者です。教えてください。 選択したセルと同じ行の別の列のセルの値をフォームの テキストボックスに表示する方法を教えてください。

  • VBA 指定の列の最終行を取得

     Excel VBAについて質問します。すいませんが宜しくお願いします。 画像の様に、A列の最終行とF列の最終行が異なった時に、 A列とF列の位置を、メッセージボックスで表示したいのですが、 例えば、画像で説明しますと、"最終列はA11とF9です" こんな感じで表示されると良いですが、 お手数ですが教えて頂けますか?

  • excelVBA でA+B列をファイル書き出し

    excel2003の VBA で、開いているシートのA列(項目行)とB列(データ)を抜粋してB列の1行目のセルに入力されているデータをファイル名として新しいEXCELファイル(B列の1行目のセルに入力されているデータ.xls)として書き出したいのです。また、B列以降も、A列+C列で1ファイル、A列+D列で1ファイル・・・のように列にデータが記載されているまでファイルとして書き出したいのです。 このような書き出しVBAを教えて下さい。宜しくお願いします。

  • 複数のExcelブックから特定シートのセル範囲抽出

    同一フォルダ内にある複数のExcelブックから特定シートの特定セル範囲を抽出して一覧表にまとめるExcel マクロ(VBA)を教えてください。 このサイトで殆どよく似た回答を読んだのですがうまくいきません。VBA初心者です。 よろしくお願いします。 【前提】 ・実行する端末のOSはWindows 10 ExcelはOffice365 ProPlus ・対象フォルダはネットワーク接続フォルダ  この中に、複数のExcelブック(xlsx、xlsm)があります。 ・抽出したい対象は、各ブック内の「台帳」シートの「A3:Cの最終行」で  複数のブックの中には「台帳」シートが含まれていないブックも混在しています。 【抽出一覧作成イメージ】 ・「集約.xlsm」ブックの「集計」シートの2行目から抽出した結果を一覧表示する。 ・「集約.xlsm」ブックにマクロは登録する ・表示はA列に抽出元ブック名(=ファイル名)、B列からD列に抽出元「A3:Cの最終行」セルの値。 ・「A3:Cの最終行」セルの値を「集約.xlsm」ブックの「集計」に貼り付ける際には「値で貼り付ける」が望ましい。

  • Access コンボボックスの2列目が表示されない

    Accessでフォームを作っています。テキストボックス「列車名」に文字列を入力するとコンボボックス「列車コード」のデータが絞り込まれるようにVBAコードを書いていますが、「列車名」を空欄にすると「列車コード」の2列目が表示されません。表示されるようにするにはどうすれば良いですか。

専門家に質問してみよう