• ベストアンサー

一部の文字を抜き出す関数

「$h$789」の文字列から「789」のみ抜き出すモジュール関数を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.6

アクティブセルの行番号って、もしかしてactivecell.rowプロパ ティのことかな。 そもそもactivecell.rows.countは選択範囲の行数のはずなのに、な ぜ$h$789なんてセル参照みたいな文字列になるのか、理解出来ない けど。 マクロは苦手だから一般人。

hakobulu
質問者

お礼

再度のご回答ありがとうございました。 activecell.rowが単独で使えるとは知りませんでした。(^^;;;;; とんでもない大回りをしようとしていたみたいです。 これだから素人はこわいですよね。 大変助かりました!!! 他の方々もご苦労おかけしてすみません。 この場をお借りして皆様にお礼申し上げます。

その他の回答 (5)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.5

モジュール関数とあるので、VBのことだとして Sub test01() p = InStrRev(Range("A2"), "$") MsgBox p MsgBox Right(Range("A2"), Len(Range("A2")) - p) End Sub を参考にしてください。 例 $1234$23456 6 23456 と表示あします。

hakobulu
質問者

お礼

ご回答ありがとうございました。

hakobulu
質問者

補足

質問の仕方が悪くて申し訳ありませんでした。 今エクセルのワークシートでコマンドボタンを作ろうとしています。 モジュール画面のコードでボタンを押すと、まずデータの最終行に飛ぶようにしました。 次にアクティブセル(変動します)の行番号だけを抜き出して変数として扱いたいのです。 ActiveCell.Rows.Countで、たとえば$h$789などと確定されるのですが、そこから789だけを取り出す方法を知りたいと思います。 たとえば「2番目の$を検索してそこから後を抜き出す」あるいは「右端から$の直前まで抜き出す」というような関数の組み合わせ(もっと効率良いものがあればそちらのほうが助かりますが)は無かったでしょうか。

回答No.4

Excelの関数の話をしていると仮定します。A1に文字列$h$789がある として、$h$789がセル参照に見えることを利用して、 =row(indirect(A1))

hakobulu
質問者

お礼

質問の仕方が悪くて申し訳ありませんでした。 今エクセルのワークシートでコマンドボタンを作ろうとしています。 モジュール画面のコードでボタンを押すと、まずデータの最終行に飛ぶようにしました。 次にアクティブセル(変動します)の行番号だけを抜き出して変数として扱いたいのです。 ActiveCell.Rows.Countで、たとえば$h$789などと確定されるのですが、そこから789だけを取り出す方法を知りたいと思います。 たとえば「2番目の$を検索してそこから後を抜き出す」あるいは「右端から$の直前まで抜き出す」というような関数の組み合わせ(もっと効率良いものがあればそちらのほうが助かりますが)は無かったでしょうか。

hakobulu
質問者

補足

ご回答ありがとうございました。 ご推察のとおりセルの絶対番地です。 解答欄と補足欄を逆に入力してしまい申し訳ありません。

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.3

◆こんな方法もありますよ =LOOKUP(10^10,RIGHT(A1,COLUMN(1:1))*1)

hakobulu
質問者

お礼

ご回答ありがとうございました。

hakobulu
質問者

補足

質問の仕方が悪くて申し訳ありませんでした。 今エクセルのワークシートでコマンドボタンを作ろうとしています。 モジュール画面のコードでボタンを押すと、まずデータの最終行に飛ぶようにしました。 次にアクティブセル(変動します)の行番号だけを抜き出して変数として扱いたいのです。 ActiveCell.Rows.Countで、たとえば$h$789などと確定されるのですが、そこから789だけを取り出す方法を知りたいと思います。 たとえば「2番目の$を検索してそこから後を抜き出す」あるいは「右端から$の直前まで抜き出す」というような関数の組み合わせ(もっと効率良いものがあればそちらのほうが助かりますが)は無かったでしょうか。

noname#204879
noname#204879
回答No.2

=MID(A1,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&"0123456789")),5)

hakobulu
質問者

お礼

ご回答ありがとうございました

hakobulu
質問者

補足

質問の仕方が悪くて申し訳ありませんでした。 今エクセルのワークシートでコマンドボタンを作ろうとしています。 モジュール画面のコードでボタンを押すと、まずデータの最終行に飛ぶようにしました。 次にアクティブセル(変動します)の行番号だけを抜き出して変数として扱いたいのです。 ActiveCell.Rows.Countで、たとえば$h$789などと確定されるのですが、そこから789だけを取り出す方法を知りたいと思います。 たとえば「2番目の$を検索してそこから後を抜き出す」あるいは「右端から$の直前まで抜き出す」というような関数の組み合わせ(もっと効率良いものがあればそちらのほうが助かりますが)は無かったでしょうか。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんばんは。 Excelでは、モジュール関数という呼び名があるのか、私は知りません。 =MID(A1,MATCH(FALSE,INDEX(ISERR(MID(A1,ROW($A$1:$A$100),1)*1),,),0),256) ユーザー定義関数にするなら、 Function PickUpNum(ByVal arg As Range, Optional sw As Boolean = True) As Variant 'PickUpNum セル, オプション[True/False] Dim i As Integer Dim buf As Variant  For i = 1 To Len(arg.Value)   If IsNumeric(Mid(arg.Value, i, 1)) = sw Then    buf = buf & Mid(arg.Value, i, 1)   End If  Next i   PickUpNum = buf End Function =PickUpNum(A1)

hakobulu
質問者

お礼

ご回答ありがとうございました。 何しろ素人なので過分なご教授をいただき恐縮しております。 参考にできるように頑張ります。^^;

hakobulu
質問者

補足

質問の仕方が悪くて申し訳ありませんでした。 今エクセルのワークシートでコマンドボタンを作ろうとしています。 モジュール画面のコードでボタンを押すと、まずデータの最終行に飛ぶようにしました。 次にアクティブセル(変動します)の行番号だけを抜き出して変数として扱いたいのです。 ActiveCell.Rows.Countで、たとえば$h$789などと確定されるのですが、そこから789だけを取り出す方法を知りたいと思います。 たとえば「2番目の$を検索してそこから後を抜き出す」あるいは「右端から$の直前まで抜き出す」というような関数の組み合わせ(もっと効率良いものがあればそちらのほうが助かりますが)は無かったでしょうか。