アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excel2016において、マクロ有効ブック.xlsm形式で、個人名のリストを作成しています。
50音順に入力しているにも関わらず、リストの一部分にのみこちらが意図しない並べ替えが発生し、その部分だけが50音順に揃わなくなってしまう、という現象が起こっています。

先日、こちらでいただいたアドバイスに従って、マクロを無効にした.xlsx形式で同じ現象が起きるかどうかを確認しました。
すると、本来 A → B → C がこちらの望む正しい50音順なのですが、それが B → C → A となって困っていたところへ、A → B → C → A という別の新しい現象になってしまいました。

ただし、どんな操作が原因でそうなるのかを調べていくうち、なんとなくそうなる条件が見えてきました。
前回は「ファイルを開いて上書き保存すると並べ替えが起きる」と思っていたのですが、実はこのExcelファイル内に別のシートがあり、そこで自分が入力した個人名リストの情報をプルダウンメニューの候補として反映している列がありました(このファイル自体は別人が作成・提供したものだったため、気づきませんでした)。
どうやら、そのプルダウンメニューをいじると(▼マークをクリックしてプルダウンメニューを開くと)その中の項目の1つが『#REF!』になったため、個人名リストと比較したところ、まさに並べ替えが起きていた部分でした(前述の例でいうA)。

そこで、リストをずらして別の人名ではどうなるかを試したところ、再現性がみられたため、そこに入力される文字列ではなく、そのセルおよび参照しようとする設定のどこかがおかしいのだというところまで見当をつけました。

Microsoftのサポートページで『#REF!』を検索して出てくる情報を見たのですが、関数や数式に明るくないため、それ以上の調査や修正までは手が出せていません。
このファイルを作った人間とは面識がなく、連絡手段もないためサポートを依頼できないのですが、具体的にどう調査してどう修正すべきか、何か手立てがありましたらお聞かせいただけるとありがたいです。

よろしくお願いいたします。

A 回答 (4件)

前回のご質問でマクロ無効化ファイルでの検証をご提案した者です。



ご質問者は
>50音順に入力しているにも関わらず、・・・・・・
と仰っているので入力方法についてお尋ねします。

ご質問のタイトルに「漢字人名が勝手に並び変わる」とあるので、当然、見た目では漢字氏名が表示されているものと推測されますが、そのセルへの入力方法は以下のどれでしょうか?

(1)MSIME、Google日本語入力、ATOKなどの日本語入力ソフトを使って漢字に変換しながら50音順に入力している。その漢字人名が勝手に並び変わる。

(2)①入力対象セルに「=」を入力し、②予め作成された漢字人名一覧表が記載された別ファイルのシートまたは同ファイル別シートを選択し、③漢字人名が既に記載されいるセルをクリック、ENTERで確定する この①②③を繰り返して、50音順に並ぶように入力している。 その漢字人名が勝手に並び変わる。

(3)上記(1)(2)以外の方法で漢字人名を50音順に入力しており、その漢字人名が勝手に並び変わる。

仮に、マクロ無効化しているのに、(1)の方法で入力して勝手に並び変わるとすると、例えばEXCELで1行目に大見出し、2行目に小見出しを漢字で入力した表を作成したら、いつのまにか勝手に1行目が小見出し、2行目が大見出しになってしまったということを意味します。
作表機能の前提を根本的に覆す現象であり、本当にこんなことが起こるなら、誰もまともな表を作成できないことになってしまいます。
つまり、No.1さん、No.2さんも指摘しておられますが、「単に入力しただけ」「新規ファイルで作成した人名リスト」では並び替えは起こらないことは明白です。従って、ご質問者の漢字人名のリストの作成方法・入力方法に問題があると推測できます。

また、仮に(2)の方法でに入力している場合、漢字人名が表示されているセルには数式が入力されているだけで、表示内容はあくまでも数式による参照結果ですから、参照元の値に変更が発生すれば並び変えも発生する可能性があります。
これを「勝手に並び変わる」といわれても、数式やセル参照というものはそもそもそういうものです。参照元の値が変更されても影響を受けないようにするには数式を値にして参照元の値変更の影響を排除するしかありません。

また、仮に(1)(2)以外の方法で入力されているのだとすると、その入力方法の詳細をご説明いただかないと、どこに問題があるのか見当のつけようもありません。
    • good
    • 0
この回答へのお礼

再度のご助言ありがとうございます。
入力方法については前回記載の通り、各セルに直接手打ちしましたので、(1)に当たるかと思われます。

なお単なる名簿を作成するのが目的ではなく、その名簿情報を同一ファイル内の別シートに存在するプルダウンメニューの入力候補とするために、専用のシートおよびセルに入力しなければならない事情があります。

今回の現象のトリガーはやはりプルダウンメニューのクリックにありそうですので、それがVBA?マクロ?の影響があるかどうかわからないのですが、そういう挙動をするようなプログラム?の書き方はたぶんこうなるはずだから、実際に当該ファイルのどこをどう操作して何を見てどこを確認すればその判断ができるのか、勉強するしか方法がなさそうですね。

お礼日時:2023/05/20 08:28

VBAがExcelのファイルにあるようですので、開発タブを開いてマクロを選択してVBAを全部消去されればいかがでしょう。

    • good
    • 0

こんばんは



質問者様が何を必要としているのか不明ですけれど・・・

1)理解できないファイルを使わずに、新規のxlsxファイルを作成します。
2)そちらのシートに、対象となる「個人名のリスト」をコピペします。

こちらのブックであれば、並べ替えが起こることは無いと思いますので、
質問者様が利用したいような仕組みを、質問者様がわかる内容として
作成なさればよろしいでしょう。
    • good
    • 1
この回答へのお礼

ありがとうございます。
単なる名簿を作成するのが目的ではなく、その名簿情報を同一ファイル内の別シートに存在するプルダウンメニューの入力候補とするために、専用のシートおよびセルに入力しなければならない事情があります。
この並び順が50音どおりでないと目的の名前を探し出しづらくなるため、勝手に並び変わってしまうと困る・・・ということです。

お礼日時:2023/12/18 18:33

単に入力しただけでは並び替えは起こらないので、VBAで並び替えているのでしょう。

VBAのプログラムを読む以外の方法は無いです。
    • good
    • 0
この回答へのお礼

ありがとうございます。
並び替えを起こすようなプログラムがされているのではないか、ということでしょうか。
プルダウンメニューで呼び出す都合上、わざわざそうする理由が思い当たらないのですが、意図せずそのような設定が組まれてしまっている可能性もありますので、プログラムを読み解けるように勉強してみます。

お礼日時:2023/12/18 18:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!