※急ぎ※ Excel グループ化で非表示にした後、保存すると図形が潰れてしまう

Anonymous
2018-05-01T02:29:13+00:00

ExcelでApplication Formを作成しています。

いくつかの選択肢から一つ選び、必要な項目だけ答えるようにしたく、

グループ化を使って5つのセクションに分けました。

回答方法には、フォームコントロールのチェックボックス、ActiveXのテキストフィールドを用いています。

上記で申し上げた通り、必要な部分だけの回答をしてほしいので、

全選択肢(タイトルを除く)を非表示(グループ化による"-")、

その中から回答者が選び、表示(グループ化による"+")を押す仕様にしたいです。

※「セルに合わせて移動やサイズ変更をする」を選択済み

しかし、非表示(グループ化による"-")の状態にしたまま保存し、ファイルをもう一度開くと、表示(グループ化による"+")した際に

図形(フォームコントロールのチェックボックス、ActiveXのテキストフィールド)が潰れて見えなくなってしまいます。

VBAを使うことも検討したのですが、初心者なのでどうもうまくいきません。

解決方法をご教示いただけますと幸いです。

(※かなり急ぎの案件で今日中に仕上げる必要があります)

宜しくお願い致します。

Microsoft 365 と Office | Excel | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

6 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2018-05-07T03:11:23+00:00

    n. hojo様

    返信が遅くなり申し訳ございません。

    そして上記アドバイス、ありがとうございます。

    ご教示いただいた行範囲の表示・非表示でコードを組み、

    フォームコントロールにてボタンを作成し、マクロを登録したのですが、

    やはり保存し開き直すと、位置がずれ、TextboxならびOptionboxが全て潰れてしまいます。

    添付いただいた画像内、表示位置を制御する"CheckBox1.Top =..."も試してみましたが、

    変わりなく潰れてしまいます。

    コントロールフォームから作成するのではなく、ActiveXを使用し、

    TextBoxおよびOptionBoxそれぞれに表示・非表示/表示位置の指示をだす必要がありますでしょうか。

    (選択肢が多いため、カナリの工数になります・・)

    何度も何度も恐縮ですが、ご教示頂けますと幸いです。

    宜しくお願い致します。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2018-05-02T03:51:53+00:00

    添付画像のようなコードで表示、非表示、表示位置を制御できます。

    私だったら、行範囲の表示、非表示は

    Sub LineHide()

     Rows("4:12").EntireRow.Hidden = True

    End Sub

    Sub LineShow()

     Rows("4:12").EntireRow.Hidden = False

    End Sub

    こんなカンジで。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2018-05-02T01:19:23+00:00

    n.hojo様

    ご返信ありがとうございます。

    記載いただいたご認識通りです。

    回避策はないとのこと、承知しました。

    締切が迫る中、試行錯誤し3日が経ってしまいましたが、

    どうにかこのGW中にVBAを習得して仕上げるしかなさそうですね・・泣

    最初は、素人ながらコードを組んで頑張っていたのですが、

    うまくいかず途中であきらめていました。

    ↓ ActiveXのオプションボタンを起用して表示/非表示をコントロールしたかったのですが、失敗。

    Sub OptionButton1()

        If Range("B12").Value = False Then

            Range("B13:B23").EntireRow.Hidden = True

        ElseIf Range("B12").Value = True Then

            Range("B13:B23").EntireRow.Hidden = False

        End If

    End Sub

    ・・・・

    (違う組み方でも挑戦) 

    Sub OptionButton1()

       HideRows "A12", "13:25"

    End Sub

    Sub OptionButton2()

       HideRows "A26", "27:38"

    End Sub

    ・・・・

    ただただ、チェックボックスやテキストボックスを含む列をそれぞれグループ化し、

    選択式で表示/非表示したいだけなのですが・・・こんなに手こずるとは。。

    モヤモヤが残る休暇になりそうです。

    でもn.hojoさんにご返信いただけて気持ちが少し楽になりました。

    有難うございました。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  4. Anonymous
    2018-05-02T00:41:33+00:00

    >ExcelでApplication Formを作成しています。

    とのことですが、

    >フォームコントロールのチェックボックス

    >ActiveXのテキストフィールド

    を配置している先は、Formではなく、

    シートですヨネ?

    以下、私の理解です。

    指摘されているだろうと思われる、

    >潰れて見えなくなってしまいます。

    という動作を確認しました。

    つぶれて見えなくなるというよりも

    シート上に配置した

    >フォームコントロールのチェックボックス

    >ActiveXのテキストフィールド

    の表示位置が

    ブックを保存して開き直すことで移動してしまい

    結果的に幾つかが重なり

    背面のチェックボックスなどが事実上見えなくなってしまう。

    という事象と理解しました。

    つまり、

    >グループ化を使って5つのセクションに分けました

    このグループ化とは、図形のグループ化ではなく、

    メニューのデータタブ、アウトラインブロックにある

    グループ化、グループ解除ですネ?

    試行錯誤してみましたが、

    少なくとも私には回避策は思いつきません。

    >VBAを使うことも検討したのですが、初心者なのでどうもうまくいきません。

    シート上の

    ActiveXのチェックボックスやテキストボックスなら、

    相当容易にVBAで表示/非表示を切り替えることができます。

    端折れば

      TextBox1.Visible = True

      TextBox1.Visible = False

    といった記述です。

    解決策としては、

    ・これを機にVBAを扱えるようにガンバル。

    ・5つのセクションをシートで分け、

     適当なセルからリンクを貼って、

     利用者に伝わりやすいインターフェースを目指す。

    ・入力規則などを活用することで

     >フォームコントロールのチェックボックス

     や

     >ActiveXのテキストフィールド

     を使うのを避ける。

    などが候補になるだろうと思います。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  5. Anonymous
    2018-05-01T08:04:37+00:00

    ​眞船 美香 さん、こんにちは。

    マイクロソフト コミュニティをご利用いただき、ありがとうございます。

    Excel でグループ化にして非表示にした後ファイルを閉じ、再度開くと図形が潰れているのですね。

    どのような手順で作成しているのかの詳細が分かると、具体的な状況が分かりやすくなり、アドバイスも得られやすくなります。

    また、画面のスクリーンショットもあわせて投稿いただくのが良いと思います。

     ◇ Windows 10で画面をキャプチャする方法

     ◇ マイクロソフトコミュニティでの画像の挿入法

    なお、マイクロソフト コミュニティはユーザー同士が情報交換を行う場で、必ずしもすぐに回答がつくとは限りません。

    有償になる可能性はありますが、お急ぎとのことなので、以下のページから Microsoft サポートに問い合わせることも検討してはいかがでしょうか。

     ◇ 問い合わせ先

    不明点があれば遠慮なく返信くださいね。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません