| このトピックに書きこむ |
|---|
| Re[17]: 123456123789が1232 4561 7891のように分けるマクロ | |
|---|---|
[196152] Re[17]: 123456123789が1232 4561 7891のように分けるマクロ- ■記事引用/メール受信=OFF■ □投稿者/ おやじ -(2024/04/11(21:36)) □U R L/ "123451236789" このようには数字が出ません 3個同じ数字が順番に出るのです。上のような数字は出ないのです。 ありがとうございました。終わります。 | |
[196151] Re[16]: 123456123789が1232 4561 7891のように分けるマクロ- ■記事引用/メール受信=OFF■ □投稿者/ マナ -(2024/04/11(20:17)) □U R L/ ↓のような場合、期待する結果は? "123451236789" | |
[196150] Re[15]: 123456123789が1232 4561 7891のように分けるマクロ- ■ □投稿者/ おやじ -(2024/04/11(20:10)) □U R L/ hatenaさん、マナさんありがとうございました。 お二人さんのコード確認しました。 念願がかないました。 | |
[196149] Re[14]: 123456123789が1232 4561 7891のように分けるマクロ- ■記事引用/メール受信=OFF■ □投稿者/ マナ -(2024/04/11(20:01)) □U R L/ 一例
Sub test()
Dim dic As Object, k, i As Long
Dim ss As String, s As String
Dim moji As String
ss = "123456123789"
Set dic = CreateObject("scripting.dictionary")
For i = 1 To Len(ss) Step 3
s = Mid(ss, i, 3)
dic(s) = dic(s) + 1
Next
For Each k In dic
moji = moji & " " & k & dic(k)
Next
MsgBox Mid(moji, 2)
End Subこの記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 | |
[196148] Re[13]: 123456123789が1232 4561 7891のように分けるマクロ- ■記事引用/メール受信=OFF■ □投稿者/ hatena -(2024/04/11(18:16)) □U R L/ 全角から半角への変換は、たいていのテキストエディターでできます。 そのようなエディターをインストールしてない場合は、下記のサイトで変換できます。 h ttps://so-zou.jp/web-app/text/fullwidth-halfwidth/ | |
[196147] Re[12]: 123456123789が1232 4561 7891のように分けるマクロ- ■記事引用/メール受信=OFF■ □投稿者/ hatena -(2024/04/11(18:03)) □U R L/ コードを全角に変換してアップしてみました。 半角に変換してから、VBA画面に貼り付けてください。 Public Sub Test() Dim a As String Dim l As Long Dim t As String Dim moji As String a = W123456123789W Do Until a = WW l = Len(a) t = Left(a, 3) a = Replace(a, t, WW) moji = moji & t & (l − Len(a)) \ 3 & W W Loop moji = Trim(moji) Debug.Print moji End Sub | |
[196146] 123456123789が1232 4561 7891のように分けるマクロ- ■記事引用/メール受信=OFF■ □投稿者/ 半平太 -(2024/04/11(17:01)) □U R L/ アップロードエラーを避ける為、 とりあえず ただの文章をアップする。 その後、投稿を編集する形でコードをアップしてみる。 <編集でコードをアップしてみた> 駄目ですねー 以下で拒否されます。 ↓ The server refuse to browse the page. The URL or value may not be correct. Please confirm the value. | |
[196145] Re[10]: (削除)- ■記事引用/メール受信=OFF■ □投稿者/ おやじ -(2024/04/11(16:36)) □U R L/ 私の能力では、難しくてコード化できません。 コード投稿が、エラーになるようなら すいませんが、そのコードをメモ帳文で 投稿できないでしょうか? 申し訳ありません。 | |
[196144] Re[9]: (削除)- ■記事引用/メール受信=OFF■ □投稿者/ hatena -(2024/04/11(12:12)) □U R L/ いろいろな方法が考えられます。 連想配列を使うとか、、、 なるべくシンプルなロジックのものを提示しておきます。 ここで、 コードを入れたものを投稿するとなぜかエラーになって投稿できないので、 ロジックを提示しておきますので、ご自身でコード化してください。 与えられた文字列(a="123456123789")の文字数をLen関数で取得 与えられた文字列(a="123456123789")から左3文字を取り出して変数tに代入 与えられた文字列aからReplace関数でtを""に置換 置換前の文字数から置換後の文字数を引いて3で整数除算するとtの個数 tの後に個数と半角空白を付加して、結果文字列(moji)に追加 これをDo Loopステートメントで与えられた文字列aが""になるまで繰り返し処理 以上 この記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 | |
[196143] (削除)- ■記事引用/メール受信=OFF■ □投稿者/ / -(2024/04/11(11:59)) □U R L/ この記事は削除されました | |
[196141] Re[7]: 123456123789が1232 4561 7891のように分けるマクロ- ■記事引用/メール受信=OFF■ □投稿者/ おやじ -(2024/04/10(14:22)) □U R L/ ありがとうございます。 その通りです。 よろしくお願いいたします。 | |
[196140] Re[6]: 123456123789が1232 4561 7891のように分けるマクロ- ■記事引用/メール受信=OFF■ □投稿者/ hatena -(2024/04/10(10:35)) □U R L/ ご希望のことを、 下記のように解釈しましたが、あってますか。 "123456123789"を3桁ずつに分割する。 ↓ "123","456","123","789" ↓ それぞれの文字列別の個数を調べる。 "123" 2個 "456" 1個 "789" 1個 ↓ 文字列の後に個数を付加して連結して出力 "1232 4561 7891" ちがうなら、どこがどう違うか指摘してください。 | |
[196137] Re[5]: 123456123789が1232 4561 7891のように分けるマクロ- ■記事引用/メール受信=OFF■ □投稿者/ おやじ -(2024/04/10(07:55)) □U R L/ 返答ありがとうございます。 エクセルは2021です。 mojiに"1232 4561 7891"と入れる方法はないか? そうです。 コード1行でなくてもいいのです。 123456123789の文字列をマクロ結果後に 1232 4561 7891と分けるマクロの書き方を知りたいのです。 | |
[196136] Re[4]: 123456123789が1232 4561 7891のように分けるマクロ- ■記事引用/メール受信=OFF■ □投稿者/ 半平太 -(2024/04/09(23:32)) □U R L/ >1個ずつは調べられるのですが、同時にmoji=のように同時に調査する方法が >分からないのです。 その部分がちょっと分からないです。 1個ずつ調べるのは面倒なので、 コード1行で mojiに"1232 4561 7891"と入れる方法はないか? と言う質問なのでしょうか? 因みにエクセルのバージョンは何ですか?(複数ある場合は古い方) | |
[196135] Re[3]: 123456123789が1232 4561 7891のように分けるマクロ- ■記事引用/メール受信=OFF■ □投稿者/ おやじ -(2024/04/09(20:58)) □U R L/ お教えありがとうございます。 私の思いが伝わっていないと思います。申し訳ありません。 a=123456123789を3個ずつに分け moji=Array(a1,a2,a3,a4) この数字を3個ずつに分けて マクロ結果が moji=a12 a21 a41 このようにしたいのです。 aの場合は moji=1232 4561 7891 a12とはa1の数字が2個 a21の数字が1個 a41の数字が1個あると言う意味です。 伝えることがむつかしいです。 moji=a12a21a41これでもいいのですが、moji=123245617891 1個ずつは調べられるのですが、同時にmoji=のように同時に調査する方法が 分からないのです。 | |
[196132] Re[2]: 123456123789が1232 4561 7891のように分けるマクロ- ■記事引用/メール受信=OFF■ □投稿者/ kazuo -(2024/04/08(20:31)) □U R L/ 私には以下のように読めました。
たたき台としていかがでしょうか?
Sub tatakidai()
Const DIV = 3
Dim a As String
Dim aa()
Dim n As Long
Dim moji As String
Dim ss() As String
a = "123456123789"
' a = "123456123"
moji = "a12 a21 a41"
' moji = "a12 a41 a21 a31"
n = Len(a)
ReDim aa(1 To n / DIV)
For n = 1 To UBound(aa)
aa(n) = Mid(a, 1 + DIV * (n - 1), DIV)
Next
ss = Split(moji)
moji = ""
For n = 0 To UBound(ss)
moji = moji & hennkann(ss(n), aa)
Next
moji = Mid(moji, 2)
Debug.Print moji
End Sub
Private Function hennkann(s As String, aa()) As String
On Error Resume Next
hennkann = " " & aa(Mid(s, 2, 1)) & Right(s, 1)
On Error GoTo 0
End Function
この記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 | |
[196131] Re[1]: 123456123789が1232 4561 7891のように分けるマクロ- ■記事引用/メール受信=OFF■ □投稿者/ 半平太 -(2024/04/08(19:19)) □U R L/ >moji=Array(a1,a2,a3,a4) >この数字を数字種類ごとに > >moji=a12 a21 a41 この部分が何を言っているのか分からないなぁ・・ 何故、同じ変数の「moji」が使われるのですか? >上の数字はどのような数字が >入るかわかりません。 上の数字とは具体的にどの数字ですか? あと、こんなコードあり得ないでしょう? ↓ >moji=a12 a21 a41 意味のあるコードを示すか、 フムフムと思える説明がないと訳が分からないです。 | |
[196130] 123456123789が1232 4561 7891のように分けるマクロ- ■親トピック/記事引用/メール受信=OFF■ □投稿者/ おやじ -(2024/04/08(15:08)) □U R L/ おじさんからの質問です。 マクロで以下の事が解決できません。 お教えお願いします。 a=123456123789 aの数字を3個ずつ区切り n=len(a) a1=mid(a,1,3) a2=mid(a,4,3) a3=mid(a,8,3) a4=mid(a,11,3) moji=Array(a1,a2,a3,a4) この数字を数字種類ごとに moji=a12 a21 a41 上の数字はどのような数字が 入るかわかりません。 (3個ずつにで分けられる数字で 3桁,6桁,9桁,12桁までです) 上の数字では結果 moji=1232 4561 7891 このようになるよう表示 | |