
エクセルマクロVBAについて教えてください。
まるっきりの初心者なので困っています。
シート1にあるA列の部番でJ111AH、J111A、J111Bといった先頭の数字が同じでその後のアルファベットが違う3種類の部品があります。
このうちJ111AHとJ111Aは納品時にユニットとして入って来るものでJ111Bは組付け時に
J111AHに取り付ける部品になります。
この3種類の部番を納品チェック時に単品で納入されないJ111Aを”-”で対象外としてB列に表示させたいです。
以上のマクロプログラムはどのようにすればいいか教えてください。
自分でいろいろ試してみましたが、うまくいかず詳しい方に聞くのが一番かと思い質問しています。
どうか、詳しい方の回答をよろしくお願いいたします。
No.10
- 回答日時:
>部番列の番号で今回対象にしているA、B、AH、BH意外の番号が出てきた際はどうなりますでしょうか?
>可能性が有るものとして
>末尾のアルファベットが違う、部番が数字のみ
部品名で書かれている
この様なときに判定には影響は無いのでしょうか?
エラーを検知した行で、エラーメッセージを表示し、止まります。
継続する場合は、一旦、エラーのデータを正しく訂正し、再度、マクロを実行しなおしてください。そうすると、最初からやり直します。
No.9
- 回答日時:
>このサイトは質問サイトであってExcelVBAの作成を 請け負うサイトではありませんので。
ホントそうです。
本来、ここはExcelVBAの作成を 請け負うサイトではないのに、親切な人は全部作ってしまうから、誰か親切な人がタダで作ってくれるサイトだと勘違いしてる質問者が後を絶たない。
「いろいろ試してみましたが」と書くんじゃなくて、どういう事を試してみたのかソースコードを示して、どのようにうまく行かなかったのか、エラーが出るのか、エラーは出ないけど意図したように動作しないのか、そういうのを提示した上で、元のソースのどこに問題があるのかを質問するのが、本来の質問でしょう。
まるまる作ってもらうのは質問と回答というここの趣旨から逸脱してますよ。
この質問者さんだけの問題じゃありませんけど。
No.8
- 回答日時:
下記へアップしました。
https://ideone.com/28qSiK
使用時の注意事項
1.部番列はE列にしてあります。変える場合は3行目の
Const BubanCol As String = "E" '部番列
を適切な列に変えてください。
2.データの開始行は、6行にしてあります。変える場合は2行目の
Const StartRow As Long = 6 'データ開始行(1以上を指定)
を適切な数値に変えてください。
3.ーの出力対象列は、4行目の
Const OutColTbl As String = "L,O,R,U,X,AA,AD,AG,AJ,AM,AP,AS,AV,AY,BB,BE" '-出力対象列
を適切な列に変えてください。
4.ーの出力対象列(L,O・・・BE列)は、マクロ実行時、最初に全てクリアされます。もし、クリアしたくなければ、23行目の
Call clear_out_cols(ws, StartRow, lastRow, outcols) '全ての出力対象列をクリア
の行を削除するか、コメントアウトするかしてください。
No.6
- 回答日時:
>F列以降でH列、L列と言った感じで選んだ列にーを出力したいです。
すみません。意味がよくわかりません。
マクロ実行時に、あなたが、どの列に出力するかを選ぶということでしょうか。例えば、H列を選んだらH列に出力し、Z列を選んだらZ列に出力したいということですか?
No.5
- 回答日時:
>ーを出力したいところは、F列以降で指定した複数列につける場合でお願いします。
「F列以降で指定した複数列」は
「F列以降で指定した複数行」の間違いでしょうか?
「F列以降で指定した複数列」をそのまま解釈すると、F列、G列、H列、・・・
等に-を出力するように読み取れます。
No.4
- 回答日時:
No3です。
>現在、部番列はAですがこれをE列に変更してさらに、2行目を6行目からに変更するには何処を変えれば良いか教えてください。
ーを出力するのはB列で良いのですか。それともF列でしょうか。
No.2
- 回答日時:
こんにちは
ご質問の文章が漠としすぎていてよくわからないので勝手に解釈しました。
>先頭の数字が同じでその後のアルファベットが違う3種類の部品があります。
例示されている番号の先頭は「J」なので数字ではないですが・・
数字は3文字の決め打ちで良いのかも不明です。
>J111Aを”-”で対象外としてB列に表示させたいです。
A列の表示を「-」としたいのか、B列に「-」とするのかもはっきりしませんね。
勝手に以下として解釈しました。
『A列の値の最後の1文字が「A」の場合に、A列は「-」の表示とし、B列にA列の値を転記する』
※ 以下のコードは上記内容で動作しますので、解釈が違っている場合は、適宜修正してください。
(マクロを使おうというのですから、修正ぐらいはできるでしょう)
Sub Sample()
Dim c
With Worksheets("シート1") ' ←シート名が違う場合は修正すること
For Each c In Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp))
If Right(c.text, 1) = "A" Then
c.Offset(, 1).Value = c.Value
c.Value = "-"
End If
Next c
End With
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
excelVBAについて。
Excel(エクセル)
-
条件付き書式の効率的な設定の仕方について
Excel(エクセル)
-
エクセル初心者です 用語とか良く分からないので簡単に説明していただけると幸いです 表を作っているので
Excel(エクセル)
-
-
4
Excelで合計を求めたいです
Excel(エクセル)
-
5
excelですが一つのマスに入ってる文字を2つのマスに変更できますか
Excel(エクセル)
-
6
Excelの区切り文字について質問です。 Excel機能にある、区切り文字を使う時に区切ったあとの書
Excel(エクセル)
-
7
45490がどうして
Excel(エクセル)
-
8
エクセル初心者です 用語等まだ良く分からないので簡単に説明していただけると幸いです タブの挿入、図形
Excel(エクセル)
-
9
excelVBAについて。
Excel(エクセル)
-
10
excelVBAについて。
Excel(エクセル)
-
11
エクセルの関数ついて
Excel(エクセル)
-
12
excelVBAについて。
Excel(エクセル)
-
13
UNIQUE関数、配列数式を使わずに品名ごとの集計を求めたい
Excel(エクセル)
-
14
エクセルでVLOOKUPの入ったセルをカウントしない方法
Excel(エクセル)
-
15
エクセルで、数字ではない値(文字列)が入った場合の計算式を教えてください。
Excel(エクセル)
-
16
Excelの罫線を消す方法
Excel(エクセル)
-
17
Excel いい方法教えてください。
Excel(エクセル)
-
18
Excelのデータの入力規則の問題点について
Excel(エクセル)
-
19
エクセルシート保護を解除させない方法。
Excel(エクセル)
-
20
Excelで、毎月の月曜と金曜の合計何日あるかを拾えるような関数ありますか?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【画像あり】オートフィルター...
-
他のシートの検索
-
Office2021のエクセルで米国株...
-
vba テキストボックスとリフト...
-
【マクロ】元データと同じお客...
-
【マクロ】【相談】Excelブック...
-
【マクロ】実行時エラー '424':...
-
エクセルのVBAで集計をしたい
-
【マクロ】【配列】3つのシー...
-
エクセルシートの見出しの文字...
-
【関数】3つのセルの中で最新...
-
LibreOffice Clalc(またはエク...
-
【マクロ】excelファイルを開く...
-
【マクロ】【画像あり】❶ブック...
-
【マクロ】【画像あり】4つの...
-
Excelで4択問題を作成したい
-
【関数】=EXACT(a1,b1) a1とb1...
-
エクセルの複雑なシフト表から...
-
UNIQUE関数の代用
-
【関数】同じ関数なのに、エラ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】元データと同じお客...
-
エクセルの関数について
-
【画像あり】オートフィルター...
-
エクセルのVBAで集計をしたい
-
エクセルのリストについて
-
【マクロ】数式を入力したい。...
-
【マクロ】【相談】Excelブック...
-
Office2021のエクセルで米国株...
-
【マクロ】実行時エラー '424':...
-
他のシートの検索
-
エクセルの複雑なシフト表から...
-
【マクロ】【配列】3つのシー...
-
vba テキストボックスとリフト...
-
【マクロ】左のブックと右のブ...
-
【マクロ】変数に入れるコード...
-
エクセルシートの見出しの文字...
-
【マクロ】別ファイルへマクロ...
-
【関数】同じ関数なのに、エラ...
-
Amazonでマイクロソフトオフィ...
-
ページが変なふうに切れる
おすすめ情報
回答ありがとうございます。
説明が下手ですみません。
A列は部番列、B列は納品チェック欄です。
やりたい事ですが
部番列の部番末尾のアルファベットの組合せで判定したい。
AHならAにーをつける
BHならBにーをつける
判定結果をB列に入れる。
以上がやろうとしている事です。
見にくいですが作りたいもののイメージした画像を付けました。
ご指導宜しくお願いします。
大変わかりやすい回答ありがとうございます。
追加で確認ですが
現在、部番列はAですがこれをE列に変更して
さらに、2行目を6行目からに変更するには
何処を変えれば良いか教えてください。
宜しくお願いします。
説明下手ですみません。
ーを出力したいところは、F列以降で指定した複数列につける場合でお願いします。
宜しくお願いします。
回答ありがとうございます。
そうです。
F列以降でH列、L列と言った感じで選んだ列にーを出力したいです。
何度もすみません。
最初に指定しておいた列にーを出力したいです。
指定した列は固定で変わりません。
宜しくお願いします。
説明が下手なのにやりたい事を省略して質問して
伝わらず、すみません。
やりたい事はE列を部番列にして
L、O、R、U、X、AA、AD、AG、AJ、AM
AP、AS、AV、AY、BB、BE列に
ーを出力したいです。
ーを表示する行は6行目以降になります。
以上がやりたい事です。
宜しくお願いします。
回答ありがとうございます。
実際に使ってみました。
思っていた通りの表示が出てきました。
一つ気になったのですが
部番列の番号で今回対象にしているA、B、AH、BH意外の番号が出てきた際はどうなりますでしょうか?
可能性が有るものとして
末尾のアルファベットが違う、部番が数字のみ
部品名で書かれている
この様なときに判定には影響は無いのでしょうか?
回答ありがとうございます。
今後、部番の表示で先程質問した
末尾のアルファベットが違う、部番が数字のみ
部品名で書かれているが追加されるので
A、B、AH、BHのみを対象にして
ーを出力したいです。