アプリ版:「スタンプのみでお礼する」機能のリリースについて

いつも大変お世話になっております。

昨日ご回答くださりました方々に厚くお礼申しあげます。

文字だけの情報では情報不足ですので、
画像を添付し、再度ご質問させていただきます。


アルファベット、ギリシア文字に対応した 数字を入力するという形式です。

その際、同じ組み合わせても、大きなブロック、いぬ ねこ うさぎ によって入力が異なってきます。

また、きっちり列があっていない個所があり、それは元に戻せません。

同じ形式のシートが10ほど複数あり、すべて同じ作業となります。


私の考えでは、

いぬからうさぎまでの範囲を選択

アルファベットを検索・・・Aとする

検索文字位置から 右2 上1 に移動したセルを検索・・・Bとする

(AとBの組み合わせを別シートに作成し、対応する文字をCに記載しておく)

アルファベット記載位置から4セル右移動した場所に対応する文字Cを記載する

というフローを考えております。


上記フローは非常に煩雑で、別個所が書き換えられてしまう恐れがありますので、
最悪、ねこの範囲の数字5はすべて同じになりますので、
それだけ入力するという形式を取りたいと思っております。

本当ならば、エクセルブックをそのまま記載すればよいのですが、
業務上の関係で、できませんので、簡略化して記載いたしました。

どなたかおわかりになられる方、ご教授くださいませんでしょうか。

宜しくお願いいたします。

「エクセルで特定文字を検索しセル移動、文字」の質問画像

A 回答 (2件)

こんにちは!


解釈が違っていたらごめんなさい。

VBAでの一案です。
↓の画像のようにSheet1に表を作成しておきます。
操作したいSheetはSheet2以降にあるとし、Sheet2以降の「いぬ・うさぎ・ねこ」の行範囲は
すべて同じだとします。(列はずれても問題ありません)
「Sheet1」は必ずSheet見出しの一番左側に配置し、
Sheet2以降のSheet名はどんなSheet名でも構いません)

Alt+F11キー → 画面左の「This Workbook」をダブルクリック → VBE画面に
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)

Sub test() 'この行から
Dim k As Long
Dim c, 範囲 As Range
Dim str As String
Dim ws As Worksheet
Set ws = Worksheets("Sheet1")
Set 範囲 = ws.Range("A2:D4")
Application.ScreenUpdating = False
On Error Resume Next
For k = 2 To Worksheets.Count
For Each c In Worksheets(k).UsedRange
str = c.Offset(-1, 2)
If c.Row >= 2 And c.Row <= 4 Then
If c = "A" And WorksheetFunction.CountIf(ws.Rows(1), str) Then
c.Offset(, 4) = WorksheetFunction.VLookup("いぬ", 範囲, _
WorksheetFunction.Match(str, ws.Rows(1), False))
End If
ElseIf c.Row >= 7 And c.Row <= 12 Then
If c = "A" And WorksheetFunction.CountIf(ws.Rows(1), str) Then
c.Offset(, 4) = WorksheetFunction.VLookup("うさぎ", 範囲, _
WorksheetFunction.Match(str, ws.Rows(1), False))
End If
ElseIf c.Row >= 16 And c.Row <= 18 Then
If c = "A" And WorksheetFunction.CountIf(ws.Rows(1), str) Then
c.Offset(, 4) = WorksheetFunction.VLookup("ねこ", 範囲, _
WorksheetFunction.Match(str, ws.Rows(1), False))
End If
End If
Next c
Next k
Application.ScreenUpdating = True
End Sub 'この行まで

※ 一旦マクロを実行すると元に戻せませんので、
別Sheetでマクロを試してみてください。

外していたらごめんなさいね。m(_ _)m
「エクセルで特定文字を検索しセル移動、文字」の回答画像1
    • good
    • 0
この回答へのお礼

お返事誠にありがとうございます。

わざわざご検証までいただき、大変うれしい限りです。

私の提示した内容でしたら、おそらく作成していただいたマクロでBINGO!
だと思います。

実際は、もう少し、内容が複雑になっておりまして、簡略化にも無理が生じてきております。

エクセルのマクロでこのような複雑な処理ができることを初めて知りました。

大変勉強になりました。

作成いただいたマクロは是非とも、今後の為に活用させていただきたく存じます。

お忙しいところ本当にありがとうございました。m(_ _)m

お礼日時:2012/06/30 17:13

申し訳ないが、これまで3件の質問を見たが、何をしたいのか具体的なイメージをつかめない。


「難解」とか「業務上の関係で」といっているが、難解なのはあなたの頭の中だけで、ちゃんと記載すれば簡単なことのように思えるが。
使っている用語が悪い。

「エクセルで特定文字を検索しセル移動」と言っているが、中味を見れば、どこでどんな文字を検索するのかわからないし、セル移動の必要性は全くなさそうだ。
「「アルファベットを検索・・・Aとする」とは、どういう意味だ。「Aというアルファベットを検索する」ということならどこで検索するのか。
「同じ組み合わせても」と言っているが何の組み合わせのことか。アルファベットに対応した数字が違ってくるというのなら、それがどこで変わってくるのかわからなければ関数もマクロもできはしない。
「AとBの組み合わせを別シートに作成し」とあるが、「いぬ」「ねこ」・・・分だけ対応表があるということか。
「右2 上1 に移動したセルを検索・・・B」というが、何で移動しなければならないのか。移動しなくても検索はできるが、この文も意味が解らない。「右2 上1」のセルでBを検索するということなのだろうか。「検索」は「どこで」「何を」がなければ「検索」にならない。
「対応する文字をCに記載しておく」といっているが、つぎでは、「対応する文字Cを記載する」となっいる。「C」は場所なのか、文字なのか区別がない。
「上記フローは非常に煩雑で」か。そのまま読めば「煩雑」を通り越してわけがわからない。
だから、こんなのに回答しなければいいのだか、同じ質問を3回もして、それもほとんど進歩がないから、せっかく回答者がいても正解にはなりそうもないので、もう少し質問を整理して回答できるようにしたらどうかと思い、ここに書いた。

単に次のようなことではないのか。

A4でアルファペットを、C3でギリシャ文字を検索する。そのアルファベットとギリシャ文字の組み合わせに数字が対応しており、その対応表は別にある。その対応した数字をE4に記入したい。同じような枠それぞれに同様な操作をしたい。
やり方を教えてほしい。

というだけの話じゃないのか。そうだとすれば、
何が煩雑なんだろう。

補足を。
    • good
    • 0
この回答へのお礼

誠に申し訳ございませんでした。

私の整理の仕方が根本的にまずかったようで、お手数を何度もおかけいたしました。

お礼日時:2012/06/30 17:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!