【3月6日実施】システムメンテナンス実施のお知らせ

エクセルで、

A1セルに「A」という値、
B1セルに「B」という値が入っています。
どちらも表示形式は「文字列」です。

C1セルに「A」という値、
D1セルに「B」という値が入っています。
どちらも表示形式は「標準」です。

E1セルに
=A1&B1
で「AB」と表示させます

F1セルに
=C1&D1
で「AB」と表示させます

「AB」と表示されたE1とF1のセルに何か違いはありますでしょうか。
教えてください。

質問者からの補足コメント

  • つらい・・・

    回答ありがとうございます!

    おそらくそういった原因だと思うのですが
    =A1&B1(値で貼り付け)
    で表示させた「AB」なら
    あるプログラム処理がちゃんと走ってくれるのですが、

    同セルに 手入力 で「AB」と直接入力すると
    プログラム処理が走ってくれなくなります。

    手入力で直接入力しても処理が走るようにしたいのですが、どうすればよいのかわかりません。
    もしわかれば教えていただきたいです_(._.)_

      補足日時:2023/02/23 00:38
  • うーん・・・

    追記

    「AB」と手で直接入力してテキスト形式にする方法を教えてほしいです

      補足日時:2023/02/23 00:43
  • 回答いただきありがとうございます。

    うまくいかないのは、どちらのケースの場合もあります。

    1、2などの数字ではなく、A、Bなどの文字です。

      補足日時:2023/02/23 10:10

A 回答 (5件)

E1とF1のセルには、表示上は何も違いはありません。

どちらも「AB」と表示されています。

ただし、セルの値やデータ型を確認すると、E1のセルにはテキスト形式で「AB」が格納されていますが、F1のセルには数値形式で「AB」が格納されています。
これは、C1とD1のセルに格納されている値が数値ではなく、文字列であるためです。数式関数によって文字列を連結する場合には、数値の計算とは異なり、数値形式ではなく、テキスト形式での値が返されます。
    • good
    • 0
この回答へのお礼

とても参考になりました!

お礼日時:2023/02/27 14:47

そもそも、ご質問者が


>同セルに 手入力 で「AB」と直接入力すると
>プログラム処理が走ってくれなくなります。
と仰っているEXCELファイルの拡張子は「.xlsx」ということでよろしいのでしょうか?
これが、「.csv」だったりすると話が混乱するだけなので確認しています。

EXCELファイルの拡張子が「.xlsx」である場合、そのファイルはどのようにして作成されたものなのでしょうか?
①システム処理により自動的に作成されたもの(セル内容を一部を変更する場合は、「=A1&B1」のように記述し、値貼付けすると定められている)
②手入力により作成されたもの(ただし、作業手順として「=A1&B1」のように数式を記述し、値貼付けすると定められている)

いずれの場合も、この手順を無視して直接「AB」と入力すると、次のプログラムの処理ができなくなるということだと思います。
①の場合および②の場合で、作成者がご質問者以外の場合は入力されている内容の詳細をご質問者が把握していないことも考えられます。
その場合、A1、B1のセルの内容は見かけで判断するしかないわけです。

添付画像をご覧ください。
A1~A6セルに「A」という文字、B1~B6セルに「B」という文字が見えています。しかし、これらは同じに見えているだけで中身は異なります。
D1セルに「=LEN(C1)」という数式を記述し、下方向へコピーしています。
A1,B1セルは「A」「B」と素直にそのまま入力してあります。
A2,B2セルは「'A」「'B」とシングルコーテーションをつけて入力してあります。
A3,A4セルは「A」、B3,B4セルに「B 」と後ろに「半角スペース」を付けて入力してあります。
A5,A6,B5,B6セルは「="A"&CHAR(13)」「="B"&CHAR(13)」とわざと改行コードを付けて入力してあります。
このように、異なる内容を入力しても見かけ上では、異なることを判別できません。

C2は「=A2&B2」を記述して「AB」が表示されています。C2セルをコピーし、同じセルに「値貼付け」してみてください。
結果は「AB」が表示されるはずですが、数式バーを見ても「'AB」とは表示されておらず、単に「AB」となっているだけです。
次に、A2セルをコピーして、C2セルを選択し、右クリックして「ショートカットメニュー」を表示させ、「貼り付けのオプション」から「書式設定」をクリックしてください。
すると「数式バー」に「'AB」と表示されるはずです。つまり書式によってシングルコーテーションが付いたりつかなかったりするということになります。
見た目は全く変わらないので、判別が困難です。

つまり、試してみる方法として「手入力するときにシングルコーテーションを付けて入力してみる」という方法が考えられます。

C3には「=A3&B3」を、C4には「=TRIM(A4)&TRIM(B4)」という数式を記述しています。その結果D3,D4セルに異なる数値が表示されていおり、長さが異なることが判ります。

>=A1&B1(値で貼り付け)で表示させた「AB」なら
>あるプログラム処理がちゃんと走ってくれる
ということは判っているので、=A1&B1(値で貼り付け)を「=TRIM(A1)&TRIM(B1)」(値で貼り付け)に替えてもプログラム処理がちゃんと走るか確認してみてください。
これで、プログラムが走らなくなったら、もともとの「A」「B」にはスペースが含まれていたということになり、スペースを含めて入力しないといけないということが判ります。

次に、C5には「=A5&B5」を、C6には「=CLEAN(A6)&CLEAN(B6)」という数式を記述しています。その結果D5,D6セルに異なる数値が表示されていおり、長さが異なることが判ります。
そこで、上記と同様に、=A1&B1(値で貼り付け)を「=CLEAN(A1)&CLEAN(B1)」(値で貼り付け)に替えてもプログラム処理がちゃんと走るか確認してみてください。
これで、プログラムが走らなくなったら、もともとの「A」「B」には制御文字が含まれていたということになり、制御文字を含めて入力しないとプログラムが走らないことが判ります。

但し、tatsumaru77さんのご指摘のとおり、そのプログラムが何の制御文字を必要としているのかは、「システムの担当者に聞くしかない」ということになります。

上記は一例であり、見た目は同じだが中身が異なるケースは様々であり、セルの正確な中身を知らない限り、手入力で同じ結果を生成することは困難だと思います。
「エクセルで、 A1セルに「A」という値、」の回答画像5
    • good
    • 0
この回答へのお礼

あなたに会えてよかった

すごすぎる回答ありがとうございます_(._.)_

拡張子は.xlsxです。

自分が作った.xlsmでマクロを起動すると自動的に.xlsxが保存され、それをあるシステムに投入します。

マクロで保存された.xlsxをそのまま投入すると必ずうまくいくのですが、
たまに内容に誤りがあり、そのまま投入すると誤った内容が登録されるため、
手入力で中身を修正して上書き保存し、投入しようと思うのですが、上書き保存するとエラーになるので、どこがいけないのかを追求しているところです。
仰る通り、いろんなパターンが考えられるので、再度、回答を参考にさせていただき原因を探りたいと思います。
大変たすります。
ありがとうございます!_(._.)_

お礼日時:2023/02/25 20:08

>もともとシステムが用意されているものにデータを投入するということなのですが、



うーん、それだと、そのシステムの担当者に聞くしかないかと思います。
(そのシステムのソースコード(又はマクロ)が公開されていて、
それを見ることが可能であれば、話は別ですが・・・・)
お役に立てなくて、申し訳ありません。
    • good
    • 0
この回答へのお礼

うれしい

いえいえ、親身にどうもありがとうございます!_(._.)_

お礼日時:2023/02/23 18:44

>うまくいかないのは、どちらのケースの場合もあります。


E1のケースでも、F1のケースでも、直接、「AB」と入力すると、
「プログラム処理が走ってくれなくなる」と理解しました。

「プログラム処理が走ってくれなくなる」とは、
①エラーメッセージが表示され停止する。
②最後まで動作するが、処理結果が期待した結果(値)にならない。
のどちらでしょうか。

そのプログラム(マクロ)を提示していただければ、対処できる可能性はありますが、提示がないと難しいかと思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。

プログラム処理と言いましたが、
実際のところは
もともとシステムが用意されているものにデータを投入するということなのですが、
.xlsxで保存したものを投入するとうまくいくのですが、
「AB」を手で直接入力したものだと、投入時にエラーが出てしまいます。
なので原因は、手入力することでセルの形式が変わってしまうからなのではないかと考えましたので質問させていただきました。

お礼日時:2023/02/23 14:24

>同セルに 手入力 で「AB」と直接入力すると


>プログラム処理が走ってくれなくなります。

うまく行かないのは、E1のケースですか。それともF1のケースでしょうか。
手入力 で「AB」と直接入力したのち、そのセルの書式設定を正しく動作する方と同じにしては、いかがでしょうか。

また、直接入力するのは、1,2等の数字ではなく、A,B等の文字なのでしょうか。
    • good
    • 0

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