電子書籍の厳選無料作品が豊富!

仕事でVBAをやっているのですが、壁にぶち当たってしまい、詳しいかたがいらっしゃいましたらアドバイスいただけたらと思い、初めてこちらを利用させていただきました。

とあるテキストファイルをエクセルで開き、A1セルにH1という文字列が入っていたとします。
A2セルには同じくH1とキーボードで入力します。
これをifでA1セルとA2セルが同じだったらというマクロを組んでもfalseになってしまいます。

ちなみに、どちらとも半角で、セルの書式設定は標準です。

一つ引っかかるのがLENB関数で調べたところA1セルは6バイトなのに対し、A2セルは4バイトだったことと
A1セルをコピーしてVBAのページに張り付けると" H1"となってしまうところがなにか原因なのかなと思いました。

なかなかうまく説明もできていないと思いますが、お助けいただけるかたがおりましたらよろしくお願いいたします。

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

  • 皆さまご回答ありがとうございました。
    こんなに多くの方にお答えしていただけるとは思っていなかったもので、こちらでお礼をさせていただきます。
    ありがとうございます。

    少し補足なのですが、テキストファイルを開くと、H1=15というのが他のセルに開かれます。
    そこから=の前までを取り出してH1のみをA1セルに入れてます。

    A1セルに取り出した際に半角に変えたり、スペースを取り除いたりも試してみたので、そのせいでは無いと思います。
    今日一日いろいろと調べながら試してみたのですがなかなか攻略できず、明日また皆さまからのご回答をヒントに試行錯誤してみようと思います。

      補足日時:2019/07/16 20:20
  • もう一度実際のシートで詳しく説明させていただきます
    画像のAのセルにテキストファイルのデータを開いて、それを=の前後で分割してBとDのセルに分けています。
    例に出しましたB65のセルがH1となっていると思います。
    たとえば空白のF65のセルにH1と入力してifで調べた時にB65とF65がtrueになればよいのですが。

    F65のセルをコピーしてモジュールのほうに張り付けるとH1となるのに対し、
    B65のセルのほうは" H1"となってしまっています。
    B65のセルのHの前に見えないスペースがあるのだと思い、Hの前にカーソルを合わせて一度バックスペースを押したものをまたコピーしてモジュールのほうに張り付けたところH1となりtrueになりました。
    ただし、trimやreplaceなどでスペースを消すことができなかったので、もしそのほかの方法で消す方法などがありましたら教えていただきたいです。

    「同じ文字列なのにfalseになってしまい」の補足画像2
      補足日時:2019/07/17 11:38
  • 皆様ご回答ありがとうございます。
    仕事の合間を縫って行っているため、レスが遅くなってしまったりとご迷惑をおかけして申し訳ございません。
    お礼では書けなかった結果をこちらで書かせていただければと思います。

    No4のfujillin様より教えていただいた=CODE(MID($A$1,COLUMN(A1),1))のコードですが、
    9 72 49という結果が出ました。

    No11のmike_g様より教えていただいた
    「=ASC(A1)=ASC(A2)」と「=A1=A2」はどちらもFALSEでした。

    No12の taunamlz様より教えていただいた「=CODE(A2)」の結果は9でした。

    みなさまから見えないエラーを調べる方法を教えていただいた結果よく出てきた9というのが原因を表す数字なのかなと思います。

      補足日時:2019/07/18 09:06
  • 皆様、このたびは私の無理難題にお付き合いいただきありがとうございました。
    WindFaller様に教えていただきましたclean関数で無事エラーを取り除くことができました。
    また、fujillin様より教えていただきました、ファイルの開き方を変えるというのも利用してみようと思いました。
    なにより、エラーを見つけ出そうとしていただけました皆様には大変感謝をしております。
    皆様ベストアンサーにしたいくらい選べないのですが、今回はclean関数を教えていただきましたWindFaller様にさせていただければと思います。
    エラーの見つけ方など、わからなかったことも多く大変勉強になりました。
    貴重なお時間を割いて対応いただき本当にありがとうございました。
    こちらのようなサイトを初めて使わせていただきましたが利用して良かったなと思いました。
    皆様本当にありがとうございました。

      補足日時:2019/07/18 10:13

A 回答 (13件中11~13件)

>テキストファイルをエクセルで開き、


ここが、原因です。
『H1』の後ろに『改行コード』が付いているからです。
Windowsの場合は、CR+LF(内部コード0A+0D)
が付加されているからです。

EXCELで直接入力した文字列には、付きません。

原因はそういうことですが、解決するにはテキストを
EXCELで無理矢理開かず、CSV形式に加工したり、
改行コードを取り除く(無視する)など検討する必要があります。

いかがでしょう?
    • good
    • 0
この回答へのお礼

ありがとうございます。
ご回答を参考にしつつ、明日また頑張ってみます。

お礼日時:2019/07/16 20:25

" H1"と"H1"は別の文字列です。


なのでfalseになって当然です。
スペースを取り除きたいのなら、スペースを削除してから比較しましょう。
また、どちらかと言うとA1にスペースが入っているのが間違いだと思うのですが、そちらを直してはだめなんですか?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
スペースの削除も今日試したのですが、ダメでした。
また明日頑張ってみます。

お礼日時:2019/07/16 20:24

例えば、Eの場合は、10のべき乗でも使われるので、1E2とかにすると、勝手に100になるとかね。


計算言語で、倍精度だとDつかったり。
Hって思いつかない。もしかしたら、平成??
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
また明日頑張ってみます。

お礼日時:2019/07/16 20:21

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A