Excel VBA 質問スレ Part68

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ dbda-8BP0)
垢版 |
2020/08/30(日) 11:55:27.33ID:Oy/VxFsh0
!extend:checked:vvvvv:1000:512
↑同じ内容を2行貼り付ける

ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK

※前スレ
Excel VBA 質問スレ Part67
https://mevius.5ch.net/test/read.cgi/tech/1593104489/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2020/10/01(木) 21:36:53.69ID:dM4yb7Ap0
罫線で囲われてたり、色塗りされたりするセルをマウスでドラッグ移動した時移動した場所は何もなくるなるのを罫線のみを残す方法ってありませんか?
簡単に言うと罫線で作った表の形式を保持したい。
2020/10/01(木) 21:50:29.37ID:5ESnmk3DM
>>439
テンプレートを隠しシートに保存しておいて、
ボタン押下で書式をコピペしてくるってどう?
2020/10/01(木) 22:00:05.10ID:gLHdGUpR0
>>439
切り貼りじゃなくてコピーアンドペーストした後に元のところの数式と値をクリア(右クリック+N)すればよいのでは
2020/10/01(木) 23:26:28.37ID:ywfP0KwV0
changeイベントで常に罫線引くことしか思いつかん
2020/10/01(木) 23:48:07.63ID:2OGRwJxy0
移動できないようにする
444デフォルトの名無しさん (ワッチョイ e3da-yeTY)
垢版 |
2020/10/02(金) 01:42:30.77ID:MWdBgx4Q0
セルをマウスでドラッグって何だよ?
エクセルで将棋でもやるの?
445デフォルトの名無しさん (ワッチョイ f35f-67ZW)
垢版 |
2020/10/02(金) 01:43:49.39ID:ChxT/cO/0
>>425
それExcel VBAでやるものではない。
自分のやりたいようにやりたければ、Windows SDKでの開発をしてください。
446デフォルトの名無しさん (ワッチョイ f35f-67ZW)
垢版 |
2020/10/02(金) 01:49:29.59ID:ChxT/cO/0
>>439
そもそも手順というものを考えた方がいい。
移動する前の情報を移動先には持ってくるが、移動元にはその情報を適用しないのはなぜ?
2020/10/02(金) 10:09:18.16ID:A7BNHAQE0
指定したフォルダ内の全てのCVSファイルを配列に追記していき対のですが、コードを教えてください
配列の0列目(1次元目)にはそれぞれのCSVファイルのファイル名をいれたいです。

Sub Sptyou()

Dim FolderPath As String, buf As String, TargetDate As String

'■フォルダを指定する
With Application.FileDialog(msoFileDialogFolderPicker)
If .Show = 0 Then
MsgBox "キャンセルされました。"
Exit Sub
End If
FolderPath = .SelectedItems(1)
End With
'■指定されたフォルダ内の全てのCSVファイルを開いて、そのファイルA列からGH列を配列に入れていく
ReDim BiforeArraybar(1, 190) As Variant
2020/10/02(金) 10:09:56.74ID:A7BNHAQE0
つづき

buf = Dir(FolderPath & "*.csv")

Do While buf <> ""
Open buf For Input As #1 'インプットモードでファイルを開く
Line Input #1, TargetDate
Do Until EOF(1) 'ファイルの終点まで
Line Input #1, Tardt '開いたファイルを上から順に読み込んでいき、変数TargetDateに代入していく
If Split(TargetDate, ",")(1) = "" Then Exit Do
'配列に追記する
ReDim Preserve BiforeArray(Ubound(BiforeArray) + 1 To ??, 1 To 190) = Sprit(TargetDate,",")
Loop
Close #1
buf = Dir()
Loop

End Sub
2020/10/02(金) 10:42:45.10ID:cHoSzh9XM
ReDim Preserveで操作可能なのは最右端の次元だけだから2次元配列で1次元目に使いたいなら一旦反転させた状態で操作して出力時にWorksheetfunction.transpose使って吐き出す必要があるぞ
いまいち最終目的が分からなかったから取り合えず読んでて気になった所だけ
2020/10/02(金) 10:56:02.65ID:ooD45Zz30
Linux のcat なら、複数のファイルを連結できるけど
451デフォルトの名無しさん (ラクッペペ MM7f-62ru)
垢版 |
2020/10/02(金) 12:25:22.61ID:XdHW2/g2M
win dosならcopyで連結できるけど
2020/10/02(金) 12:29:54.55ID:a296oIK60
>>448
内側のLoop内で Tardt ってのが気になった
2020/10/02(金) 13:32:21.66ID:A7BNHAQE0
>>449

右端にファイル名を入れるにはどうしたらいいですか?

それと、配列のUpperをどう設定したらいいですか?
454デフォルトの名無しさん (ワッチョイ ff6d-Zm3W)
垢版 |
2020/10/02(金) 15:56:01.43ID:7/1+1goB0
また馬鹿な質問者か。それともいつもの厚かましい馬鹿か?
455デフォルトの名無しさん (ラクッペペ MM7f-62ru)
垢版 |
2020/10/02(金) 16:13:26.37ID:XdHW2/g2M
右端の次元と右端の列では話の次元が違うけどわざとやってんのかなー?

excelなんだからとりあえずシートに格納すればいいと思うんだけどなー
配列に1行づつ追加するよりはやいんじゃね?
VBは動的配列無いんだからパフォーマンス出すには頭を使わにゃいかんよ
行数をキーにしたDictionaryもいいかもね
2020/10/02(金) 16:51:14.94ID:p6rjz1Jr0
>>453
配列のUpperが何を意味してるのかいまいち分からんがこんな感じで良いんか?

Line Input #1, TargetDate
BeforeArray(0, Ubound(BeforeArray, 2)) = ファイル名
For文[1〜190](BeforeArrayにSplit(TargetDate, ″,″)を放り込む)
ReDim Preserve BeforeArray(0 to 190, Ubound(BeforeArray, 2)+1)
Do Until EOF(1)
Line Input #1, TargetDate
For文[1〜190](BeforeArrayにSplit(TargetDate, ″,″)を放り込む)
ReDim Preserve BeforeArray(0 to 190, Ubound(BeforeArray, 2)+1)
Loop
2020/10/02(金) 18:32:48.78ID:a296oIK60
>>453
こういうことじゃないのか

targetdata = buf & "," & targetdata
2020/10/02(金) 22:17:00.26ID:MWdBgx4Q0
>>455
サイドブレーキを使う坂道発進をダサイと感じるようなもので、
どう考えてもシート格納が合理的なのに、無理して配列を使うわけですよ。
2020/10/02(金) 23:43:54.67ID:ooD45Zz30
CSV の規格では、各要素をクォート文字で囲めば、
各要素中に、列区切り文字も入れられる

"a,b", x

Ruby などのCSVライブラリを使わず、
自力で、列区切り文字で分割すると、バグるだけ

CSVの規格を知らない香具師が、よくやってる
2020/10/03(土) 00:18:46.98ID:DSTQ9BDR0
csvに規格ってあったんだ
461デフォルトの名無しさん (ワッチョイ f35f-MSJL)
垢版 |
2020/10/03(土) 07:11:14.79ID:umHauNXS0
ExcelでCSVをダブルクリックで開いて編集、上書きして事故る人が多いね
2020/10/03(土) 07:17:22.78ID:NCQ7EVNV0
>>460
一応あるけど結局Excelで読めないとダメって言うケースが大多数だったりする
http://www.kasai.fm/wiki/rfc4180jp
2020/10/03(土) 08:43:50.77ID:2jz2H7gQ0
そのRFCって、たくさんあるローカルルールの1つを紹介してるだけだよな
強制力もなさそうだし、現時点ではあんまり意味がなさそう
464デフォルトの名無しさん (ワッチョイ f35f-67ZW)
垢版 |
2020/10/03(土) 11:51:59.59ID:ylT9+9xh0
>>459
マイクロソフトの製品はそれに沿っているものがあるが、クォーテーションがついたり、つかなかったりするのは、人間にとってもタチが悪く、完全に失敗した仕様と結論が出ている。
2020/10/03(土) 13:01:37.98ID:/wA+nWqo0
列区切り文字は、必要なければ省略できる

つまり、x も、"x" も同じ。
全ての要素に、付けてもよい

ただし、"a,b" みたいに要素内に、
行区切り文字・列区切り文字・クォート文字を含む場合は、省略できない
2020/10/03(土) 13:03:38.87ID:/wA+nWqo0
>>465
修正

>列区切り文字は、必要なければ省略できる
クォート文字は、必要なければ省略できる
2020/10/03(土) 13:04:25.84ID:DSTQ9BDR0
できないって言われましても強制力無いですし
2020/10/03(土) 13:34:48.02ID:zZGrTJee0
まあそもそも多数の実装が出てからそれ集めて決めた仕様だからな
2020/10/03(土) 19:43:36.45ID:WrZNWJut0
そういやあれ何だろうな。
QueryTableだとセル内改行でずれるのに、
ADOだとずれないとか。
2020/10/04(日) 19:09:07.88ID:mqiPq7lq0
配列を戻す自作関数を呼び出し先Subから複数回実行して、配列を結合したい
んだけど、どうすればできますか? redim preserveとUBoundを使うのかも
しれないけど、いい感じにまとまったコードが書けない。
例えば、下の関数を、別のSubから2回実行させて、
「Ary(3) ※中身:path1,path2,path1,path2」
の結果を得たいです。

Function TestFunc()
Dim testPath(1)
testPath(0) = "path1"
testPath(1) = "path2"
'return
TestFunc = testPath
End Function
2020/10/04(日) 19:09:08.25ID:mqiPq7lq0
配列を戻す自作関数を呼び出し先Subから複数回実行して、配列を結合したい
んだけど、どうすればできますか? redim preserveとUBoundを使うのかも
しれないけど、いい感じにまとまったコードが書けない。
例えば、下の関数を、別のSubから2回実行させて、
「Ary(3) ※中身:path1,path2,path1,path2」
の結果を得たいです。

Function TestFunc()
Dim testPath(1)
testPath(0) = "path1"
testPath(1) = "path2"
'return
TestFunc = testPath
End Function
2020/10/04(日) 19:09:56.24ID:mqiPq7lq0
連投すいません
2020/10/04(日) 19:15:03.93ID:l1LxtJm7d
注意

ID:mqiPq7lq0

いつもの馬鹿です
2020/10/04(日) 21:13:23.82ID:3bz1Ts/P0
>>471
検索したらいいんじゃね
2020/10/04(日) 21:42:10.14ID:NRUY+ZF00
>>471
例えとかいい感じとかじゃなくて正確にコードを提示してどの部分をどうしたいのか明確に説明した方がいいよ
476デフォルトの名無しさん (スッップ Sd1f-EBv7)
垢版 |
2020/10/04(日) 21:43:28.32ID:hlbFeQNpd
後出し続けて全部作ってもらおうという魂胆の奴だぞ
2020/10/05(月) 01:21:09.51ID:Roj0MJiCr
VBAからIEを操作して、タグを指定して.valueやselctedで自動化しているのですが、ヤフオクの商品説明だけどうしても値の挿入ができません。
Tabや近い要素をフォーカスしたりクリックし、SendkeyなどでShift +Tabからエンダーなど試していますが、一向に解決できません。
直接でか無くてもカーソルが点滅させれれば、クリップボード経由で貼り付けるような仕様にしようと考えています。
2020/10/05(月) 07:08:41.25ID:z7kgQPv30
漏れは、Ruby, Selenium Webdriver で、ブラウザを自動操作して、
send_key で、ユーザー名・パスワードを自動入力して、ヤフーにログインしてる

require "selenium-webdriver"

options = Selenium::WebDriver::Chrome::Options.new
options.add_option( :detach, true ) # ブラウザを切り離す
options.add_argument( '--start-maximized' ) # 画面最大

driver = Selenium::WebDriver.for :chrome, options: options
driver.manage.timeouts.implicit_wait = 10 # default timeout

driver.navigate.to "https://login.yahoo.co.jp/config/login_verify2?.src=ym";

element = driver.find_element(:id => "username")
element.send_key "ユーザー名"

driver.find_element(:id => "btnNext").click

element = driver.find_element(:id => "passwd")
element.send_key "パスワード"

driver.find_element(:id => "btnSubmit").click
2020/10/05(月) 07:11:02.53ID:z7kgQPv30
そもそも、IE なんか動くのか?

漏れは、Chrome
2020/10/05(月) 12:57:11.88ID:BlyIycRMM
>>475
すみません。

Sub test
Dim i,ary()
For i = 1 to 2
ary = TestFunc ※ary配列の要素の最後に呼び出した配列を追加していきたい
Next
End
2020/10/05(月) 13:22:13.75ID:PJYbs+y10
配列に配列を追加するのを初心者がつくるなら
追加する2つの配列と結果を格納する配列の計3つを用意して順番に格納すればできないかな?
2020/10/05(月) 14:35:29.71ID:8f5Gi5TxM
>>480
いい加減にしろや糞が
2020/10/05(月) 14:54:20.99ID:3En1oQ3G0
>>471
redim preserveとUBoundを使うのかも

まあしかし、その処理ほんとに配列でやるのが良いのか検討したほうが良いんだが
VBAコレクション系弱いからなぁ
2020/10/05(月) 15:05:07.42ID:PJYbs+y10
検索すればすむのにね
2020/10/05(月) 17:50:38.43ID:BlyIycRMM
>>481
>>483
ありがとうございました。
2020/10/05(月) 17:58:27.13ID:FAPvswgpM
喧嘩腰だなあ
何しにきてんのさ
2020/10/05(月) 18:26:34.61ID:KW0b9HJla
くれくれ君だからしょうがないだろ
488デフォルトの名無しさん (ラクッペペ MM7f-62ru)
垢版 |
2020/10/05(月) 19:48:49.79ID:UUAqkjmTM
>>484
F1キー押す方が早くね?
2020/10/05(月) 19:51:04.71ID:0f3oInSL0
>>488
押すだけならワンキーだけど、オンラインヘルプはそこからが長い
2020/10/06(火) 10:31:57.17ID:9/35+5mY0
大人の対応でうまく誘導してやろうぜ
2020/10/07(水) 19:45:01.41ID:FTOZLATq0
下記のように特定の文字を削除して、改行をやめて1行文にしたいのですがコードのご教示いただけないでしょうか


やんやんつけ棒§
めちゃ美味い

ポテトチップス§
めちゃ美味い



やんやんつけ棒めちゃ美味い

ポテトチップスめちゃ美味い
2020/10/07(水) 20:04:32.74ID:7ZMz7DKjM
まともなテキストエディタ(VSCodeとかサクラエディタとか)で開いて正規表現置換で§¥r¥を空に置換すればよい
2020/10/07(水) 20:05:03.03ID:7ZMz7DKjM
訂正
§¥r¥n
2020/10/07(水) 20:27:15.03ID:FTOZLATq0
>>492
なるほど…めちゃ助かります。ありがとうございます。
495デフォルトの名無しさん (ワッチョイ 8ae6-SfJD)
垢版 |
2020/10/07(水) 21:05:04.00ID:8t5FIA980
もっと面白い質問しろよ
2020/10/07(水) 21:08:11.63ID:EPmDsevha
やんやんつけ棒って何?
2020/10/07(水) 21:08:37.26ID:FTOZLATq0
申し訳ありません、もう一点

A1:私は実は理学部出身
A2:の元々は地質学者です
A3:
A4:こうした南鳥島で
A5:
A6:レアアースの濃集が
A7:起こる
A8:
A9:というのは
A10:
A11:特徴的な層準に

A1:私は実は理学部出身
  の元々は地質学者です
A2:こうした南鳥島で
A3:レアアースの濃集が
  起こる
A4:というのは
A5:特徴的な層準に


下の行に文字列 → 2行の文章として、改行を入れてExcelの1マスにまとめる
下の行が空白 → 1行の文書なのでそのまま

これをなんとかVBAで自動化したいのですが記述を教示願えますでしょうか

面白くない質問ですみません…
2020/10/07(水) 21:11:26.09ID:JTTOzasI0
>>497
その条件2つそのままコードに直していけるよ
2020/10/07(水) 21:17:21.39ID:ueKkqa210
改行がLfなのかCrなのかCrLfなのか知らんが
Replace("改行入りの文字列", vbLf, "")
2020/10/07(水) 21:58:27.94ID:JTTOzasI0
>>499
そんなことしたら改行しなくなるが…
501デフォルトの名無しさん (ワッチョイ ca6d-zMau)
垢版 |
2020/10/07(水) 22:16:39.68ID:XaxSLEYL0
いつものクレクレ君かな
2020/10/07(水) 22:51:28.53ID:7uT04k8fM
・コードを要求
・追加で教えて

いつもの人だね
2020/10/07(水) 22:54:48.87ID:8t5FIA980
普通に書けばできることを聞く意味が分からん

もしかして書けないの?
書けないならやめればいいのに
2020/10/07(水) 22:56:25.93ID:Az9cGqg8M
>>498
>>499
ありがとうございますm(__)m
2020/10/08(木) 01:49:40.56ID:584FeZ4r0
>>497
VBAに慣れている人なら簡単に自動化というかVBAで組める内容ではある
問題はこの程度の内容を質問するより先に、自力でできるとこまで自分で
やらなかった最初の一歩が間違っているんだと思う
2020/10/08(木) 09:04:33.67ID:BqKPxLQJa
CSVとして保存
VSCode等のまともなエディタで開く
([^¥r]+)¥r¥n([^¥r]+)を”$1¥r¥n$2”に置換
¥r¥n¥r¥nを¥r¥nに置換
Excelにインポート

>>492同様にワンショットでいいならこんな感じでいけるんじゃね
2020/10/08(木) 14:32:22.56ID:584FeZ4r0
それができないのが初心者
2020/10/08(木) 15:37:32.47ID:d1cy1ieUM
クレクレ君のより煽ってる奴のがうざいんだけどね
VBAだけが人並にできるからこのスレにいつも欠かさず覗きにきてる感じか?
いつものお前が邪魔ですよお
2020/10/08(木) 15:59:16.76ID:btiqMG+Y0
>>508
大丈夫スルーしてるから
遠まわしでも構うと同列に
2020/10/08(木) 17:05:05.08ID:+6fedHspM
>>508
くれくれ君本人乙
2020/10/08(木) 19:30:11.76ID:bwT1M8vM0
>>507
できないことは問題じゃない
やろうとしないことが問題
2020/10/08(木) 19:55:49.61ID:YPYO8uSI0
たしかにやろうとしないことが問題
てのは御指摘のとおりですね。すみません。
映像制作を生業としてますが普段tipsを聞くのりで聞いてしまいました。
2020/10/08(木) 20:04:37.46ID:KjDVO4Tm0
>>512
5chなんて便所の落書きなんだからそれでいいと思う。
ただ、まともな返事を期待して馬鹿を見ても仕方ない場所でもあるけれど。
2020/10/08(木) 21:04:52.28ID:DcpygGCOd
ただでさえ印象悪いのにどうでもいい言い訳まで付けてさらに印象悪くするよくあるパターン
515デフォルトの名無しさん (ワッチョイ 6bda-q18j)
垢版 |
2020/10/09(金) 00:24:11.53ID:t8qEIjmh0
Dim dw As Date
Dim i As Integer

Sub test()
'ランダムに並び替える

Randomize
'乱数を入れる
For i = 1 To 200
Cells(i, 2) = Rnd()
Next i

'乱数で昇順並び替え
Range("A1:B200").Sort _
Key1:=Range("B1"), Order1:=xlAscending, _
Header:=xlNo, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom, _
SortMethod:=xlPinYin

'乱数を削除
Range("B1:B200").Clear

dw = DateAdd("S", 5, Now)
Application.OnTime dw, "test"

End Sub
516デフォルトの名無しさん (ワッチョイ 6bda-q18j)
垢版 |
2020/10/09(金) 00:26:14.42ID:t8qEIjmh0
>>515
のdw = DateAdd("S", 5, Now)
Application.OnTime dw, "test"
を入れると、
「実行できません。このブックでマクロが使用できないか、またはすべてのマクロが無効になっている可能性があります。」
となってしまいます。

「マクロのセキュリティ」は「すべて有効」にしています。

どうすればいいでしょうか
2020/10/09(金) 00:56:17.14ID:8xBy2vBw0
>>516
そのプロシジャを標準モジュールに書く

CellsとかRangeとか、ちゃんとシート指定しといたほうが良いぞ
518デフォルトの名無しさん (ワッチョイ 6bda-q18j)
垢版 |
2020/10/09(金) 01:28:40.34ID:t8qEIjmh0
>>517
できました!
>CellsとかRangeとか、ちゃんとシート指定しといたほうが良いぞ
わかりました

ありがとうございました。
2020/10/09(金) 16:14:30.36ID:SmS5zjtB0
1,1,2,2,3,4,4,4,5,6

1-1,1-2,2-1,2-2,3,4-1,4-2,4-3,5,6
に変換したいのですが、どういうコード書けばよいのでしょうか?
2020/10/09(金) 16:19:59.95ID:5DciVe+j0
連想配列使ってカウントするか(0 to 対象の値のMax)の配列を用意して、Array(対象の値)にカウントするかが1番頭使わなくて済むかな?
2020/10/09(金) 16:55:39.01ID:9cfuJ5OLM
かなり前だけどこのスレで教わったアドバイスが今やってることでピンときた
タブ増やして進めてくより
userformをhideとshowで工程進めてくみたいにしたほうがいいわ
ありがとうかなり前に教えてくれた人!
2020/10/09(金) 17:52:44.19ID:OU1KT8YFa
>>519
fori=1 to 要素数(※要素数はカンマで区切られた数)
数字=数字 & “-” & i
next i
みたいな感じで
前の数字と違ったら数字をリセット
(iが1ならこの処理はしない)
要素がひとつなら処理せず次のiに
2020/10/09(金) 18:03:17.75ID:klvVBjUq0
next i って書く人嫌い
2020/10/09(金) 18:15:01.53ID:FzRk+nqKp
かなり前の話と言えば
昔Privateで書かれたプロパティを
外部から取得する方法を書いてた人がいたけど
あれどうやるんだったっけ
525デフォルトの名無しさん (ワッチョイ 03e5-SfJD)
垢版 |
2020/10/09(金) 18:33:13.76ID:/2wG1kS20
内部から漏洩させるのが確実
526デフォルトの名無しさん (ワッチョイ 03e5-SfJD)
垢版 |
2020/10/09(金) 18:36:07.52ID:/2wG1kS20
>>523
それ以前にまったく要望を満たしていない
2020/10/09(金) 21:13:45.01ID:hr48HmJ4d
>>517
俺はブックも必ず指定するけどね。
2020/10/09(金) 21:15:25.62ID:hr48HmJ4d
>>519
どうしたいのかもう少し言葉で説明してくれる?
2020/10/09(金) 21:41:09.60ID:KqgB0xuS0
>>519
普通にカウントアップして、1から2に、2から3に上がるときにカウンターリセット。
2020/10/09(金) 21:44:54.18ID:VcvC9Dp/0
1つしかなかった時に連番を付けない処理が一手間多くて面倒
データの先読みが必要になる
2020/10/09(金) 21:49:11.48ID:5R2Ih+qA0
出力タイミングを次の数字を見てからにすれば楽
2020/10/09(金) 21:49:18.81ID:2P2kQgrz0
1個でも複数でも変わらない
おかしな考え方してるんだろう
533デフォルトの名無しさん (ワッチョイ 8ae6-SfJD)
垢版 |
2020/10/09(金) 21:49:40.29ID:hWEYACMU0
>>528
1.処理速度
2.低コスト
3.低ステップ
4.読みやすさ

優先順位はとりあえずこんな感じで頼むわ
2020/10/09(金) 22:02:55.54ID:VcvC9Dp/0
次の数字を見るかどうかの所で配列の最後かどうかも判定する必要があって面倒
シンプルでうまい方法があるんなら言葉じゃなくてコードで答えてくれ
2020/10/09(金) 22:06:14.03ID:rNmj4HJx0
splitでカンマ区切りの配列化
instrで個数確認
かね?
2020/10/09(金) 22:07:17.45ID:rNmj4HJx0
>>534
Uboundで判定して抜ければいいじゃん
2020/10/09(金) 22:19:01.76ID:VcvC9Dp/0
>>536
ちゃんと動くコード書いてみて
2020/10/09(金) 22:24:25.52ID:VcvC9Dp/0
Sub Macro1()
  Dim a(), b()
  a = Array(1, 1, 2, 2, 3, 4, 4, 4, 5, 6)
  u = UBound(a)
  ReDim Preserve a(u + 1)
  ReDim b(u)
  a(u + 1) = a(u) + 1
  x = a(0) + 1

  For i = 0 To u
    If a(i) - x Then
      c = 1
    Else
      c = c + 1
    End If
    If c = 1 Then
      b(i) = a(i)
      If a(i) = a(i + 1) And u - i Then b(i) = b(i) & "-1"
    Else
      b(i) = a(i) & "-" & c
    End If
    x = a(i)
  Next

  Debug.Print Join(b, ",")
End Sub
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況