
CSVからEXCELに取り込んだデータにおいて
F列が空白でないならばM列に1を入力 というプログラムを組んだところ、
手前のL列の区切り位置が原因で、正しく1と入力されない行がありました。(*)
そこで、”マクロの記録”から、L列に対してタブで区切る記述を盛り込んだところ、
1度目にボタンを押した時には上手くいかず(*の再発)、続けてもう1度同じボタンを押すと
正しく1と入力されます。これが毎回発生します。
原因と解消方法につき、何かご存知の方がいらっしゃいましたら教えていただけないでしょうか。
(自分だけが使用するExcelではないので、2度ボタンを押すことは避けたいです)
お手数ですが、よろしくお願いいたします。
No.3
- 回答日時:
#1です。
M列セルは、入力されているが、見えないと言う事でしょうかね。
区切り位置でなく、L列、M列の表示形式を変更すると見えるのかな?
例えば、
Range("L:M").NumberFormatLocal = "G/標準"
Range("L:M").HorizontalAlignment = xlRight
あと
Cells(行, 列).Offset(0, 7).Value = "1" 1を文字として扱いたいのなら
="'1"と変えてみてはどうでしょう。
一連のご質問の内容を理解できていませんので、私の限界ですね。
No.2
- 回答日時:
こんばんは
CSVを取り込んだシート上で、プログラムを実行しているものと解釈しましたが、
>区切り位置が原因で、正しく1と入力されない行がありました
という状況が想像できません。
後から、文字区切りを利用して展開したりして上書きされてしまうというような意味でしょうか?
そのようなことをしていなければ、手操作でもプログラムでも「入力した値が正しく入力されない(?)」というようなことは考えられないのですけれど・・・
どのようなデータで、何をすると、どうなるのでしょうか?
ご返信ありがとうございます。わかりにくい表記で、混乱を招いて申し訳ございません。補足のところに画像と説明を加えましたので、お手隙で再度ご確認いただけませんでしょうか。ご迷惑をおかけしますが、よろしくお願いいたします。
No.1
- 回答日時:
こんばんは、
プロセス、データ内容が分からないので、どのタイミングで実行するのが良いのか、わかりませんが、
* が不要なら、データをReplaceすれば良いように思います。
RangeObject = Replace(RangeObject, "*", "")
ご回答ありがとうございます。伝え方が悪く、大変申し訳ございません。
1と入力される代わりに*と入力されるわけではなく、
「手前のL列の区切り位置が原因で、正しく1と入力されない行がある」という事象自体を、後の文章で参照するために、注釈の(*)をつけておりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Visual Basic(VBA) エクセルVBA 4 2022/05/14 00:51
- Visual Basic(VBA) tatsumaru77様 昨日回答して頂いたものです。 すみませんが、昨日の質問で1つ補足があります 1 2022/05/15 15:06
- Excel(エクセル) 重複したデータ(空白は除く)のVBA表記について 4 2022/08/15 07:28
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- Excel(エクセル) Excel VBAについてです。 少しだけ知識はあるのですが、 うまくいかなかったので 質問させてい 3 2022/09/13 18:40
- その他(趣味・アウトドア・車) Arudino nanoが正常に動作しない原因 1 2022/10/30 18:29
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Visual Basic(VBA) Excel VBAのリストボックスの値を他のフォームに反映させる方法を教えてください。 2 2023/07/14 14:06
- Excel(エクセル) Excel 表の作成について 3 2022/06/16 12:15
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定のセルだけ結果がおかしい...
-
エクセルのdatedif関数を使って...
-
エクセルのVBAで集計をしたい
-
【マクロ】【配列】3つのシー...
-
vba テキストボックスとリフト...
-
エクセル ドロップダウンリスト...
-
【関数】同じ関数なのに、エラ...
-
Office2021のエクセルで米国株...
-
【マクロ】列を折りたたみ非表...
-
9月17日でサービス終了らし...
-
【マクロ】アクティブセルの時...
-
ページが変なふうに切れる
-
【条件付き書式】シートの中で...
-
【マクロ】3行に上から下に並...
-
【マクロ】オートフィルターの...
-
【マクロ】EXCELで読込したCSV...
-
【画像あり】オートフィルター...
-
他のシートの検索
-
エクセルの循環参照、?
-
Excelファイルを開くと私だけVA...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセル
-
【マクロ】WEBシステムから保存...
-
エクセルの循環参照、?
-
エクセル ドロップダウンリスト...
-
エクセルのdatedif関数を使って...
-
特定のセルだけ結果がおかしい...
-
【マクロ】A列にある、日付(本...
-
【マクロ】EXCELで読込したCSV...
-
【マクロ】アクティブセルの時...
-
【エクセル】期限アラートについて
-
iPhoneのExcelアプリで、別のシ...
-
【関数】同じ関数なのに、エラ...
-
Excelの新しい空白のブックを開...
-
【マクロ】3行に上から下に並...
-
【マクロ】宣言は、何のために...
-
VBA チェックボックスをオーバ...
-
Excelについての質問です 並べ...
-
【マクロ】アクティブセルの2...
-
【関数】不規則な文章から●●-●●...
おすすめ情報
質問内容がわかりづらく、また補足が遅くなって、申し訳ございません。
同じ形式でダミーデータを作成しましたので、添付いたします。
F列がブランクでないときにM列に1と表示させたいのですが、そのプログラムを実行すると、CSVから取り込んだ元データの形式が邪魔をして、添付のような状態になります。
すなわち、31行目のくまもんの行で、F列に記入があるのにM列に1と入力されません。
上手くいった29行目と見比べると、L列の表示形式に違いがあるようなので、手動でL列の区切り位置を変えてからプログラムを実行したところ、M31セルにも1と入りました。
そこで、M列に1と入力する前にL列の区切り位置を変えるプログラムを追記しました。
しかし、1度目のプログラム実行では1と入力されず、続けてもう一度同じプログラムを実行すると1と入力されます。これの原因究明と解消をしたいと考えております。
prefSh.Activate
'L列 区切り位置の変更
Columns("L:L").Select
Selection.TextToColumns Destination:=Range("L1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 1), TrailingMinusNumbers:=True
Dim 列 As Long, 行 As Long
列 = 6 '調査対象セルの列番号
For 行 = 2 To workEndR '行番号2から最終行まで
If IsEmpty(Cells(行, 列)) Then '空白セルならスキップ
行 = 行 + 1
Else
Cells(行, 列).Offset(0, 7).Value = "1" '空白セルでないなら右方向に7つ先のセルに1と表示
End If
Next '繰り返す(Forへ戻る)