- ベストアンサー
エクセルVBAの文字列操作について
エクセルVBAの文字列操作について 例えば、[1-10,12,15-20,22-38]と入っているセルがあるとします。 各数字は","で区切られています。このセルに数を足したり引いたりしたいのです。 例えば、このセルから”5”を引いて[1-4,6-10,12,15-20,22-38]と表示したり、 "21"を足して[1-10,12,15-38]と表示したいのですが どなたかご教授いただけないでしょうか?
- みんなの回答 (4)
- 専門家の回答
関連するQ&A
- セル内の文字列操作について
Excelでセル内の文字列を操作したいのですが、Excelの標準の関数では出来そうにないので、どなたかお力をお貸しください。 1つのセル内に、文字列や数値が複数入っています。 (例) Excel 12 りんご Word 11 このセルを調べて、数値のデータが複数入っている場合、最大値のみを表示させ、残りの数値データは削除したいのです。 (結果) Excel 12 りんご Word この処理の対象はセル内の数値データであって文字列には作用させず、結果的には文字列はそのまま表示させたいのです。 Excelの文字列に関する関数を調べてみたのですが、該当するものがなく、VBAを使用しなくてはならないのかもしれません。処理するデータが大量なため、VBAマクロなどで処理できれば大変ありがたいのですが、どなたかご存知の方がいらっしゃいましたら、ご教授くださいませ。どうぞよろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- 文字列操作(ExcelのVBAですが)
特定のExcelセル内にある文字列について、 例えば、 138.40.8.7 と入っている場合、 138.40.08.7 に、 35.9.1.6 と入っている場合、 35.09.01.6 にするVBA関数を作りたいのです。(セル関数でもかまわないですが) つまり、小数点で区切られている2番目と3番目の数字が 一桁の場合、頭に0を付けて、必ず二桁になるようにしたいわけです。 どなたか、ご教授くださいませ。 よろしくお願い致します。
- ベストアンサー
- Visual Basic
- VBAの文字列操作教えて
EXCELのVBAを使って、あるセルの8桁の文字列の先頭2桁を取り出したいのですが、どのような命令を使えばいいのですか?例えば、「ABCDEFGH」の「AB」を取り出してその「AB」を違うセルに入れたいのです。教えてください。
- ベストアンサー
- オフィス系ソフト
- エクセルVBAの文字列操作について2
エクセルVBAの文字列操作について2 以前、こちらでご教授いただいた以下のような文字列操作方法があります。 この方法ですと例えば[1-3]から3をひいた際に"1-2"と表示されますが 今回は連続する数字が2つの場合は1,2と表示させ3つ以上の場合は-でつないで表示させたいと思います。 一週間ほど考えたのですが解決できませんでした。 どなたかご協力お願いいたします。 質問内容 例えば、[1-10,15-20,22-38]と入っているセルがあるとします。 このセルに数を足したり引いたりしたいのです。 例えば、このセルから”5”を引いて[1-4,6-10,15-20,22-38]と表示したり、 "21"を足して[1-10,15-38]と表示したい。 いただいたご回答 A1 セル に「1-10,12,15-20,22-38」と入力されているとして、別のセルに =NUMORDER(A1,-5) と入力すると「1-4,6-10,12,15-20,22-38」と表示し =NUMORDER(A1,21) と入力すると「1-10,12,15-38」と表示します。 1つ目の引数には「セル番地」または「文字列」を、2つ目の引数には「1 ~ 99 までの整数」をお入れください。 Function NUMORDER(myStr As Variant, num As Integer) As String Dim i As Long Dim j As Double Dim myNum As Variant '文字列中の スペース を削除 myStr = Replace(myStr, " ", "") '文字列の前後に「0」・「100」を挿入 Select Case Left(myStr, 2) Case "1,", "1-" myStr = myStr & ",100" Case Else myStr = "0," & myStr & ",100" End Select '文字列を カンマ で分割し、ハイフン の区間の数字を補完する myStr = Split(myStr, ",") For i = 0 To UBound(myStr) If InStr(myStr(i), "-") > 0 Then myNum = Split(myStr(i), "-") myStr(i) = "" For j = myNum(0) To myNum(1) myStr(i) = myStr(i) & " " & j Next myStr(i) = Trim(myStr(i)) End If Next '欠番に「●」を入れ、「数を足したり引いたり」する myStr = Split(Join(myStr)) For i = 0 To UBound(myStr) - 1 myStr(i) = myStr(i) & Application.WorksheetFunction.Rept(" ●", myStr(i + 1) - myStr(i) - 1) Next myStr = Split(Join(myStr)) If num > 0 Then myStr(num - myStr(0)) = num Else myStr(-num - myStr(0)) = "●" End If '前後に挿入した「0」・「100」を削除 myStr = Replace(Join(myStr), " 100", "") If Left(myStr, 2) = "0 " Then myStr = Right(myStr, Len(myStr) - 2) '連続数字を ハイフン で繋ぐ myStr = Split(myStr, "●") For i = 0 To UBound(myStr) If myStr(i) <> " " Then myNum = Split(Trim(myStr(i))) If UBound(myNum) > 0 Then myStr(i) = myNum(0) & "-" & myNum(UBound(myNum)) End If End If Next 'カンマ で文字列に分割する myStr = Application.Trim(Join(myStr)) NUMORDER = Replace(myStr, " ", ",") End Function
- 締切済み
- オフィス系ソフト
- エクセル 文字列から数字だけを抽出
エクセル2016の操作について教えて下さい。 セル内の文字列から数字だけを抽出したいです。 例えばAの列にこのような文字列が入っているとします。 高度5km 高度10.1km この中の数字だけを取り出して隣のB列の同じ行に数字だけを表示させる方法がありましたら教えて下さい。 宜しくお願いします。
- ベストアンサー
- Excel(エクセル)
- エクセルの文字列操作
住所録の様式で A列にNo、B列に氏名、C列に住所のファイルがあり、 C列の住所で、1個のセルに何故かしら「住所と電話番号」が入っています。 住所と電話番号を夫々別の列に分割したくて、 電話番号は、RIGHT 関数で取り出しました。 住所は、文字数が一定でないので、LEFTまたはMID関数では出来ません。 ここで質問です 住所データの末尾に混在する電話番号は10文字の場合に限定し、 文字数の異なる、住所(○○市XX町△△番地○△荘2-103など)のみ 抽出する方法はありませんか。 なお、VBAなどは無知です、エクセル関数だけの操作があれば教えてください。
- ベストアンサー
- その他(PCパーツ・周辺機器)
- vbaで文字列の件
お世話になります。 エクセルVBAで、文字列の右から何文字列目以降を 緑色に着色したいのですが、どうしたら良いか分かりません。 offsetで隣のセルに切り出してから着色とかは出来たのですが・・、 どなたかご教授下さい。 宜しくお願い申し上げます。
- ベストアンサー
- Visual Basic
- エクセルの文字列としての数値
エクセルでは「’」を付けるか、セルを文字列とするかで、数字を文字列として認識させられるようですが、ここで文字列として認識された数値はASCIIにおける、文字列としての数認識コードとやはり同じなのでしょうか?それともエクセル独自のものと解釈した方がよいのでしょうか?
- ベストアンサー
- オフィス系ソフト
- EXCEL VBA 文字列
A列のセルに、文字列が以下の様に並べられています。 【あああああ】いいいいいいううううううえええおおおお 上記のような場合に、”あああああ”と【】の文字だけを取り出して、B列に表示させることはマクロで可能でしょうか?但し、【】のなかの文字数はセルによりバラバラです。 ネットでかなり検索したのですが、自分では解決できませんでした。 どうか、よろしくお願いいたします。
- ベストアンサー
- その他MS Office製品
- エクセルで文字列の計算をしたいのですが。
エクセルで文字列の計算をしたいのですが。 セルの表示は文字列ですが、実際のデータは数字(だけ)が入っています。 これを計算する事は可能でしょうか?。 例えば A1セル:00001 と入っていて B1セルには、A1セル+1=00002 とさせたいのです。 よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
お礼
ありがとうございます!解決しました。