
仕事でVBAをやっているのですが、壁にぶち当たってしまい、詳しいかたがいらっしゃいましたらアドバイスいただけたらと思い、初めてこちらを利用させていただきました。
とあるテキストファイルをエクセルで開き、A1セルにH1という文字列が入っていたとします。
A2セルには同じくH1とキーボードで入力します。
これをifでA1セルとA2セルが同じだったらというマクロを組んでもfalseになってしまいます。
ちなみに、どちらとも半角で、セルの書式設定は標準です。
一つ引っかかるのがLENB関数で調べたところA1セルは6バイトなのに対し、A2セルは4バイトだったことと
A1セルをコピーしてVBAのページに張り付けると" H1"となってしまうところがなにか原因なのかなと思いました。
なかなかうまく説明もできていないと思いますが、お助けいただけるかたがおりましたらよろしくお願いいたします。
No.3
- 回答日時:
>テキストファイルをエクセルで開き、
ここが、原因です。
『H1』の後ろに『改行コード』が付いているからです。
Windowsの場合は、CR+LF(内部コード0A+0D)
が付加されているからです。
EXCELで直接入力した文字列には、付きません。
原因はそういうことですが、解決するにはテキストを
EXCELで無理矢理開かず、CSV形式に加工したり、
改行コードを取り除く(無視する)など検討する必要があります。
いかがでしょう?
No.2
- 回答日時:
" H1"と"H1"は別の文字列です。
なのでfalseになって当然です。
スペースを取り除きたいのなら、スペースを削除してから比較しましょう。
また、どちらかと言うとA1にスペースが入っているのが間違いだと思うのですが、そちらを直してはだめなんですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
VBA:同じ文字列データの比較がうまくいかない例
Excel(エクセル)
-
エクセルに詳しい方に教えて頂きたいです。 全く同じ文字に見えるのにEXACT関数を使って調べるとFA
Excel(エクセル)
-
なぜこんな初歩的なVBAのIf文でエラーか発生して使えないのか、全く理解出来ません。誰か助けてくださ
Visual Basic(VBA)
-
-
4
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
5
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
6
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
-
7
日付の照合でFALSEになります。
Excel(エクセル)
-
8
実行時エラー 438になった時の対処法を教えて下さい。
Visual Basic(VBA)
-
9
VBA 判定文で理解できない結果になる
その他(Microsoft Office)
-
10
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
11
お助けください!VBAのファイル名エラーについて
Visual Basic(VBA)
-
12
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
13
UserForm1.Showでエラーになります。
工学
-
14
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
15
VBAマクロの文字列認識について
Excel(エクセル)
-
16
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
17
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
18
VBA エンターキーでイベントに入りたい。
PowerPoint(パワーポイント)
-
19
初歩的な事だと思います。 Sub または Function が定義されていません。
Visual Basic(VBA)
-
20
VBAで文字列を数値に変換したい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ】実行時エラー '424':...
-
【マクロ】数式を入力したい。...
-
Office2021のエクセルで米国株...
-
エクセルのVBAで集計をしたい
-
vba テキストボックスとリフト...
-
【マクロ】【配列】3つのシー...
-
【マクロ】元データと同じお客...
-
【マクロ】【相談】Excelブック...
-
他のシートの検索
-
【画像あり】オートフィルター...
-
【マクロ】左のブックと右のブ...
-
空白のはずがSUBTOTAL関数でカ...
-
エクセルシートの見出しの文字...
-
【関数】3つのセルの中で最新...
-
Excelに貼ったXのURLのリンク...
-
【マクロ】excelファイルを開く...
-
LibreOffice Clalc(またはエク...
-
【マクロ】【画像あり】❶ブック...
-
エクセルの複雑なシフト表から...
-
Excelで4択問題を作成したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】元データと同じお客...
-
エクセルの関数について
-
【画像あり】オートフィルター...
-
エクセルのVBAで集計をしたい
-
エクセルのリストについて
-
【マクロ】数式を入力したい。...
-
【マクロ】【相談】Excelブック...
-
Office2021のエクセルで米国株...
-
【マクロ】実行時エラー '424':...
-
他のシートの検索
-
エクセルの複雑なシフト表から...
-
【マクロ】【配列】3つのシー...
-
vba テキストボックスとリフト...
-
【マクロ】左のブックと右のブ...
-
【マクロ】変数に入れるコード...
-
エクセルシートの見出しの文字...
-
【マクロ】別ファイルへマクロ...
-
【関数】同じ関数なのに、エラ...
-
Amazonでマイクロソフトオフィ...
-
ページが変なふうに切れる
おすすめ情報
皆さまご回答ありがとうございました。
こんなに多くの方にお答えしていただけるとは思っていなかったもので、こちらでお礼をさせていただきます。
ありがとうございます。
少し補足なのですが、テキストファイルを開くと、H1=15というのが他のセルに開かれます。
そこから=の前までを取り出してH1のみをA1セルに入れてます。
A1セルに取り出した際に半角に変えたり、スペースを取り除いたりも試してみたので、そのせいでは無いと思います。
今日一日いろいろと調べながら試してみたのですがなかなか攻略できず、明日また皆さまからのご回答をヒントに試行錯誤してみようと思います。
もう一度実際のシートで詳しく説明させていただきます
画像のAのセルにテキストファイルのデータを開いて、それを=の前後で分割してBとDのセルに分けています。
例に出しましたB65のセルがH1となっていると思います。
たとえば空白のF65のセルにH1と入力してifで調べた時にB65とF65がtrueになればよいのですが。
F65のセルをコピーしてモジュールのほうに張り付けるとH1となるのに対し、
B65のセルのほうは" H1"となってしまっています。
B65のセルのHの前に見えないスペースがあるのだと思い、Hの前にカーソルを合わせて一度バックスペースを押したものをまたコピーしてモジュールのほうに張り付けたところH1となりtrueになりました。
ただし、trimやreplaceなどでスペースを消すことができなかったので、もしそのほかの方法で消す方法などがありましたら教えていただきたいです。
皆様ご回答ありがとうございます。
仕事の合間を縫って行っているため、レスが遅くなってしまったりとご迷惑をおかけして申し訳ございません。
お礼では書けなかった結果をこちらで書かせていただければと思います。
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というのが原因を表す数字なのかなと思います。
皆様、このたびは私の無理難題にお付き合いいただきありがとうございました。
WindFaller様に教えていただきましたclean関数で無事エラーを取り除くことができました。
また、fujillin様より教えていただきました、ファイルの開き方を変えるというのも利用してみようと思いました。
なにより、エラーを見つけ出そうとしていただけました皆様には大変感謝をしております。
皆様ベストアンサーにしたいくらい選べないのですが、今回はclean関数を教えていただきましたWindFaller様にさせていただければと思います。
エラーの見つけ方など、わからなかったことも多く大変勉強になりました。
貴重なお時間を割いて対応いただき本当にありがとうございました。
こちらのようなサイトを初めて使わせていただきましたが利用して良かったなと思いました。
皆様本当にありがとうございました。