質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

4回答

3716閲覧

「A1に「みかんぶどうりんご」と入力し、Instr関数とLeft関数を使ってA1から「ぶどう」を抽出してA2に表示する。」のやり方を教えてほしい。

fdajo

総合スコア13

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2021/05/21 18:11

編集2021/05/21 18:14

「A1に「みかんぶどうりんご」と入力し、Instr関数とLeft関数を使ってA1から「ぶどう」を抽出してA2に表示する。」を教えてほしい。

そもそもできるのか?
Mid関数でならできると思うが…
調べているが、left関数では途中から文字取得はできないと思う。

試したこと。

vba

1Sub 関数Instr_left() 2 Dim N As String 3 Dim str As String 4 5 Range("a1") = "みかんぶどうりんご" 6 7 N = Range("a1") 8 9 str = InStr(N, "ぶどう") 10 11 12 Range("a2") = Left(N, str) 13 14 15End Sub

イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sazi

2021/05/22 01:36 編集

Instr()で、「ぶどう」を含んでいるかどうかが分かるので、抽出する必要は無いと思うのですが? クイズですか?
jinoji

2021/05/22 02:08

たぶん無理難題をいう将軍様がいらっしゃるのでしょう。 「このはしわたるべからず」的な。
guest

回答4

0

Left関数になぜこだわるのかな?

VBA

1 2Sub 関数_left() 3 4Dim 文字数 As Long 5 6Dim str(1) As String 7 8Dim N As String 9 10 Range("a1") = "みかんぶどうりんご" 11 12 N = Range("a1") 13 14 文字数 = Len("ぶどう") 15 16 str(0) = Mid(N, InStrRev(N, "ぶどう")) 17 18 str(1) = Left(str(0), 文字数) 19 20 MsgBox str(1) 21 22End Sub```

投稿2021/05/24 13:03

syousuke.33

総合スコア312

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

VBA

1 Dim orange As Range 2 Dim grape As GroupShapes 3 Dim apple As Application 4 5 Set orange = Range("A1") 6 orange.Value = "みかんぶどうりんご" 7 If InStr(orange.Value, "ぶどう") > 0 Then orange.Offset(1).Value = Left("ぶどう", 3) 8

投稿2021/05/22 04:36

jinoji

総合スコア4592

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

おっしゃる通り、Mid関数だと思います。

VBA

1Range("A2") = Mid(Range("A1"), InStr(Range("A1"), "ぶどう"), Len("ぶどう"))

投稿2021/05/22 04:09

plomte

総合スコア46

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Replace関数も使って実現する方法です。

VBA

1Sub Instr_Left_Replace() 2 Dim Moji As String 3 Dim nn As Integer, mm As Integer 4 5 Moji = "みかんぶどうりんご" 6 7 nn = InStr(1, Moji, "ぶどう") 8 mm = Len("ぶどう") 9 10 Range("A1").Value = Moji 11 Range("A2").Value = Left(Replace(Moji, Left(Moji, nn - 1), ""), mm) 12End Sub

投稿2021/05/22 00:01

TanakaHiroaki

総合スコア1063

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問