'[a], [b], [c]から、先々がかなり心配です。
'「ハナコのステップ」とか、しっかり学んでください。このままだと、あとあと早々に行き詰まります。
'基礎編フォローベーシックでなんとか。アドバンスドには太刀打ちできない、というくらいで終ってしまうでしょう。
'全問題、「エクセル上での結果が同じになった」で満足せず、「何も見ないで書いても小川さんが書いたのと同じ形になる」というところまで、身体に叩き込むつもりで動作練習してください。
'[a]プロシージャ名ひどいです
Sub a()
'[b]↓インデントいれましょう
Dim r As String
Range("A2").Value = InStr(Range("A1").Value, "本")
Range("A3").Value = Mid(Range("A1").Value, Range("A2") + 3)
Range("A4").Value = Left(Range("A3").Value, 3)
If Left(Range("A4").Value, 3) = "|" Then
r = Left(Range("A4").Value, 2)
Else: r = Left(Range("A4").Value, 3) '[c] 一行にまとめない
End If
End Sub
Sub kaitorei()
Dim qr
Dim hon
Dim pp1
Dim pp2
qr = Range("A1").Value
hon = InStr(qr, "本")
pp1 = InStr(hon + 1, qr, "||")
pp2 = InStr(pp1 + 2, qr, "|")
Range("G20").Value = "hon"
Range("G21").Value = hon
Range("H20").Value = "pp1"
Range("H21").Value = pp1
Range("I20").Value = "pp2"
Range("I21").Value = pp2
Range("D22").Value = Mid(qr, pp1 + 2, pp2 - pp1 - 2)
Range("E22").Value = Mid(qr, pp2 + 1)
End Sub
受講生さんの投稿
(投稿ID: 4183)
今回の質問は、文字が入った数値ex(13l)(じゅうさんパイプ)を数値のみの(13)にしたい場合うまくinstr関数left関数にしてもうまくできません。
なにが原因かそして改善策をどうしたらいいのかおしえてください。
ちなみにQRコードを読んだときに区切りとして出てくる”l”です。
もしかしたら”パイプ”と読まないのかもしれませんがこの区切りをなくし数値のみにしたいと思ってます。
よろしくお願いいたします。
小川慶一さんのコメント
(コメントID: 5745)
こんにちは。
理由として考えられることが多すぎます。
ので、いただいた投稿だけでは何とも言えません。
書いたプログラムを送ってください。エクセルファイルごとのほうがよいです。
「業務で使うファイルなので送付はできない」ということでしたら、自分でエクセルファイルを作り、そのファイルのどこかのシートのどこかのセルに「ex(13l)」という文字列を投入し、それを区切り文字「|」で区切って左右に分割しようとするなりの、書いて挫折したマクロも送ってください。
よろしくお願いいたします。
> この講座を作っていただいてありがとうございます!っていうぐらいわかりやすく、何回も見直してます。
>
> 今回の質問は、文字が入った数値ex(13l)(じゅうさんパイプ)を数値のみの(13)にしたい場合うまくinstr関数left関数にしてもうまくできません。
>
> なにが原因かそして改善策をどうしたらいいのかおしえてください。
> ちなみにQRコードを読んだときに区切りとして出てくる”l”です。
> もしかしたら”パイプ”と読まないのかもしれませんがこの区切りをなくし数値のみにしたいと思ってます。
> よろしくお願いいたします。
ゲストさんのコメント
(コメントID: 5751) 添付ファイルのダウンロード権限がありません
早急にお返事いただいてありがとうございました。
早速ですがおくります。
よろしくお願いいたします。
小川慶一さんのコメント
(コメントID: 5752)
最初の投稿でファイル受領できています。
エラーがでてしまいましたか。それはすいません。システム担当に調査させます。
ファイル内容確認のうえ、またお返事差し上げますね。
よろしくお願いいたします。
> 小川先生
> 早急にお返事いただいてありがとうございました。
>
> 早速ですがおくります。
> よろしくお願いいたします。
>
小川慶一さんのコメント
(コメントID: 5753)
添削を返送します。
このエクセルファイル、このまま講座用資料として公開させてもらっても良いでしょうか?
なお、この問題は、今は基礎編レベルの知識と実力しかないのでこういうゴリゴリした方法でしかやれませんが、発展編2レベルの知識と実力がつくともっと簡単に解けます。
今の段階では、こういうやり方でいくより仕方ないですね。
基礎編本編第3章の Instr 関数のところは再復習してください。Instr関すで "||" をさがしてたとえば26という数字が返ってきたなら、 "||" の左側の "|" が26文字目にあります。右側のは27文字目。
すると、 "||" のあとの文字は、28文字目、ということになります。
それから、何度も登場する値は変数に格納すること。基礎編本編第1章の「変数」以降を復習してください。
とりいそぎ。
> 小川先生
> 早急にお返事いただいてありがとうございました。
>
> 早速ですがおくります。
> よろしくお願いいたします。
>