Excel VBA 質問スレ Part69

レス数が950を超えています。1000を超えると書き込みができなくなります。
2020/12/13(日) 00:22:23.67ID:Fd224klc0
!extend:checked:vvvvv:1000:512
↑同じ内容を2行貼り付ける

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

※前スレ
Excel VBA 質問スレ Part68
https://mevius.5ch.net/test/read.cgi/tech/1598756127/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
899デフォルトの名無しさん (アウアウウー Sa0f-W2tv)
垢版 |
2021/03/10(水) 15:39:38.02ID:hxdj8Ixba
>>898
updatingが表示になったときに計算されるのか、非表示中に計算されてるのかがわからないのです。
2021/03/10(水) 15:43:34.11ID:TvaGnuXK0
ExcelからVBAが完全になくなるより先にMSが先になくなりそうじゃない?
2021/03/10(水) 15:57:24.48ID:kPBSipVT0
MSがなくなるより先にお前がなくなるんじゃない
2021/03/10(水) 17:04:34.10ID:ij0IDF+ed
その前にIT途上企業のウチの会社がなくなるな
2021/03/10(水) 17:25:36.32ID:PHH+vFRc0
>>899
対象セルのvalue値を処理中に
debug.printで書き出すなり
どこかのセルに突っ込むなり
トレースして確認するなりすればいいじゃん
まず聞く前にググる癖をつけないと
いつまで経っても誰かに聞かないと
何も出来なくなるよ
904デフォルトの名無しさん (アウアウウー Sa0f-W2tv)
垢版 |
2021/03/10(水) 17:37:30.93ID:hxdj8Ixba
>>903
わかりました。てか式の値見ればすぐわかりますね。やってみます
2021/03/10(水) 18:13:57.59ID:osSCK/tE0
今日水曜日なのにweekdayName(weekday(Date))で木曜日と出るのは仕様?

Dateは2021/03/10
weekday(Date)は4
と出ることは確認済み
weekdayとweekdayNameで週始めを日曜とするか月曜とするかで差が出てるんだろうからweekdaynameをvbSundayにすることで解決はするけど、何かが原因でここに違いが出てるなら修正したいので仕様かどうか知りたい
2021/03/10(水) 19:31:18.15ID:WhcyA+8r0
仕様ではない
2021/03/10(水) 19:41:43.99ID:iMortp6N0
Weekdayの規定値がvbSundayで、WeekdayNameの規定値がvbUseSystemDayOfWeek。
どっちかに合わせた方がいいと思う。
2021/03/10(水) 20:15:11.47ID:FQxPGFWfa
やっぱり>>885の方法はないですかね
諦めてマクロボタンで更新します
ありがとうございました
2021/03/11(木) 16:08:09.65ID:2F7MZ2cN0
>>907
なるほど、自分のwindowsカレンダーの開始日が月曜になってるからなのか
なんで既定値が違うんだろうという疑問は残りつつも納得、ありがとうございました
2021/03/12(金) 14:18:56.93ID:cUuyzc0G0
VBA学ぶのにお勧めの本ありますか?
911デフォルトの名無しさん (ワッチョイ 7d5f-6Qoe)
垢版 |
2021/03/12(金) 14:22:39.95ID:b9Kr93A50
>>910
MOSの本
912デフォルトの名無しさん (ワッチョイ 7d5f-6Qoe)
垢版 |
2021/03/12(金) 14:25:27.81ID:b9Kr93A50
正確にはVBAエキスパートか。

見過されがちだけど、試験対策本は非常によくまとまっている。
913デフォルトの名無しさん (ドコグロ MM4a-GUUA)
垢版 |
2021/03/12(金) 17:44:33.68ID:UcsTGFzQM
買う前に周辺の図書館を回れば、vba本が見つかるかもしれない
914デフォルトの名無しさん (アウアウクー MM51-6Qoe)
垢版 |
2021/03/12(金) 19:23:46.81ID:7Crflr6rM
金額の話なのか?
2021/03/12(金) 19:31:10.39ID:f8Q6HjqoM
650頁を超える「Excel VBA逆引き辞典パーフェクト」を最初から通して読む
2021/03/12(金) 23:07:31.55ID:NBdc6r9a0
VBの、何かあの電話帳より分厚いの有るじゃん
叩かれると85ポイントくらいダメージを受けそうな感じのアレ
マジレスすると、あれで勉強したわ
2021/03/12(金) 23:38:50.44ID:sGQx1lBf0
>>894
XLookupを使いなさい
2021/03/13(土) 02:37:38.41ID:5xXr3I9d0
まじレスすると他人のおすすめの本は買っただけで満足して読まない可能性が高い
2021/03/13(土) 07:57:23.36ID:slDJWJ280
>>910
出来るだけ薄い奴がいいよ
少なくとも一週間で読み切れそうな奴
細かい部分は結局ググる事になるから手っ取り早く基礎だけ学べるのがいい

プログラミングの勉強は書き方を学ぶというより、
「ググる方法、ググって出てきた内容を理解できる最低限の知識」を身に着ける方に重きを置いた方がいい
2021/03/13(土) 08:14:07.47ID:csBuBYNL0
>>910
現在の知識レベルによって薦める本は変わってくるけどなーんも知らないと言うのならVBAの絵本でいいんじゃなかろか

>>919の人も言ってるけど基本、ネットで調べることになるんでどちらかというと
自分が知りたいことを調べられる単語をすぐに思い浮かべる力と
それを理解する力の方が自分的には重要な気がする
後、理解出来なければ取り敢えず書いてみてこねくり回すことも大事

本当に基本的なことさえ分かっていれば、
その内クラスやAPI、コールバックとかにぶつかることがあってもネットで調べることが出来れば
自分が然るべき理解力をつけた際に理解出来るようになる。
921デフォルトの名無しさん (ワッチョイ 7d5f-6Qoe)
垢版 |
2021/03/13(土) 08:17:01.13ID:tBGlpruK0
メルカリなどでたくさん買って、好きなのを使えばいいよ。
2021/03/13(土) 11:51:20.74ID:9LAtgmD40
>>910
VBAの神様
923デフォルトの名無しさん (ワイーワ2 FFca-6Qoe)
垢版 |
2021/03/13(土) 14:55:26.89ID:4/YYKqK7F
Excel VBAは自己流が多いと思うけど、体系的に学習するならマイクロソフトのVBAエキスパート本だろうな。
2021/03/13(土) 21:38:13.19ID:99ipLDsT0
小手先のテクニックより
複雑怪奇なExcelの挙動の中身がどうなってんのか
詳細に説明してほしいわ

謎挙動がおおすぎる
2021/03/13(土) 21:57:08.91ID:7fDCnZwF0
具体的には?
926デフォルトの名無しさん (ワッチョイ 7d5f-6Qoe)
垢版 |
2021/03/13(土) 22:05:26.89ID:tBGlpruK0
>>924
あまり使われていないVBAの機能を使うとすぐにバグにはまる。
927デフォルトの名無しさん (ワッチョイ 7d5f-6Qoe)
垢版 |
2021/03/13(土) 22:07:49.91ID:tBGlpruK0
ActiveXのボタンが消えるバグなどは放置状態
2021/03/14(日) 01:08:53.96ID:EQ7/9AB00
vbの構文がダサすぎるのが嫌
綺麗に書いても汚らしく見える Dim asとかキモいんだよ
2021/03/14(日) 02:39:44.98ID:QAEhurjz0
VBAのコードのフォントを HGP行書体 (日本語) とかにしてみたら?
2021/03/14(日) 03:51:24.74ID:+mKOZ3nE0
ACCESSのレポートではかけたのですが
VBAで規定の先よりも細い線を書くことはできませんか?
2021/03/15(月) 06:39:33.91ID:6QvkQitw0
コントロールのボタンが押す度徐々に小さくなったり消えたり動き回ったり
配列返す関数をUboundに渡すとメモリリークしたり、
フォームをモーダル表示中にシートをアクティブにすると何故かシートを操作できたり、
インターフェースを実装するクラス自体をインターフェースに出来てしまう上に、それをするとバグったり、
いくらでも上げられるだろ

特にフィルタ関連は変なのが多い
specialcells(xlcelltypevisible)とかcopyメソッドとか
932デフォルトの名無しさん (ワッチョイ a1da-xjD7)
垢版 |
2021/03/16(火) 14:07:15.77ID:yEkj4Jws0
作成依頼なんですがお願いできますでしょうか

A列に数字(No.)
B列に文字列(名前)の3000行ほどの表があります。
A列の数字は重複している箇所があり、
A列が他の行と重複している場合B列の文字を全て繋げてC列に書き出したいのですが可能でしょうか。

サンプル
A列  B列 C列
11111 A子 A子
11112 B子 B子
11113 C子 C子・D子・E子
11113 D子 C子・D子・E子
11113 E子 C子・D子・E子
11114 F子 F子
11114 F子 F子
11115 E子 E子

ただし、サンプルのように
A列が重複してもB列の文字列が同じだった場合は『F子・F子』とならずに『F子』のままで、
重複しないA子、B子もそのままにしたいのです。
Aが列の数字は最大で20ほど重複している場合があります。

ずっと手作業でやってて挫けそうなんでお願いします!!
2021/03/16(火) 14:24:36.41ID:gGJzxP62H
>>932
Sub Macro1()
  rr = Cells(Rows.Count, 1).End(xlUp).Row
  For i = 1 To rr
    n = Cells(i, 1)
    s = Cells(i, 2)
    t = s & "・"
    For j = 1 To i - 1
      If Cells(j, 1) = n Then
        w = Cells(j, 2)
        If InStr(t, w) = 0 Then
          t = t & w & "・"
        End If
      End If
    Next
    t = t & s & "・"
    For j = i + 1 To rr
      If Cells(j, 1) = n Then
        w = Cells(j, 2)
        If InStr(t, w) = 0 Then
          t = t & w & "・"
        End If
      End If
    Next
    t = Left(t, Len(t) - 1)
    t = Right(t, Len(t) - 1 - Len(s))
    Cells(i, 3) = t
  Next
End Sub
2021/03/16(火) 15:29:08.70ID:yEkj4Jws0
>>933
どひゃ〜!!!!
しゅ、しゅごいぃいいい!
ありがとうございます!ありがとうございます!本当にありがとう!
2021/03/16(火) 15:59:46.67ID:cZC9o7Y5M
それ、例えば百合さんと百合子さんがいた時にバグらない?
こういうのは辞書に登録してitemsプロパティをjoin関数に渡すのが鉄板だと思う

最近ならvba使わずにfilter関数とunique関数でも同じことできるから、もしかしたらこっちの方が楽かも
2021/03/16(火) 15:59:47.11ID:btbyDUmHr
>>933
きったねえソースだなおい
2021/03/16(火) 16:01:05.39ID:YCs8uHit0
お、きれいなソース期待かw
2021/03/16(火) 16:15:55.00ID:gGJzxP62H
百合・百合子バグ修正
Sub Macro1()
  rr = Cells(Rows.Count, 1).End(xlUp).Row
  For r = 1 To rr
    n = Cells(r, 1)
    s = Cells(r, 2)
    t = "・" & s & "・"
    For i = 1 To r - 1
      If Cells(i, 1) = n Then
        w = Cells(i, 2)
        If InStr(t, "・" & w & "・") = 0 Then
          t = t & w & "・"
        End If
      End If
    Next
    t = t & s & "・"
    For i = r + 1 To rr
      If Cells(i, 1) = n Then
        w = Cells(i, 2)
        If InStr(t, "・" & w & "・") = 0 Then
          t = t & w & "・"
        End If
      End If
    Next
    t = Left(t, Len(t) - 1)
    t = Right(t, Len(t) - Len(s) - 2)
    Cells(r, 3) = t
  Next
End Sub
2021/03/16(火) 16:53:04.48ID:cZC9o7Y5M
百合さんと百合・D・ルフィさんがいた時にバグる
2021/03/16(火) 17:22:11.94ID:gGJzxP62H
百合・D・ルフィバグ修正
Sub Macro2()
  Dim d As Object
  Set d = CreateObject("Scripting.Dictionary")
  rr = Cells(Rows.Count, 1).End(xlUp).Row
  For r = 1 To rr
    For i = 1 To rr
      If Cells(i, 1) = Cells(r, 1) Then
        s = Cells(i, 2)
        If Not d.exists(s) Then d.Add (s), 0
      End If
    Next
    Cells(r, 3) = Join(d.keys, "・")
    d.RemoveAll
  Next
End Sub
2021/03/16(火) 17:31:00.58ID:tUVUKdZi0
>>932
Ruby で、CSV ファイルでやってみた

require 'csv'

tmp_hash = { }

result_ary = CSV.read( "input.csv" ) # 2次元配列

result_ary.each do | row | # 1行ずつ処理する
if tmp_hash.has_key? row[ 0 ] # 既に、その数字が存在すれば
# 文字列が存在しない時だけ、その文字列を追加する
tmp_hash[ row[ 0 ] ][ row[ 1 ] ] = true unless
tmp_hash[ row[ 0 ] ].has_key? row[ 1 ]
else
tmp_hash[ row[ 0 ] ] = { row[ 1 ] => true }
end
end

# p tmp_hash
# {"11111"=>{"A子"=>true}, "11112"=>{"B子"=>true},
# "11113"=>{"C子"=>true, "D子"=>true, "E子"=>true},
# "11114"=>{"F子"=>true}, "11115"=>{"E子"=>true}}

result_ary.each do | row | # 1行ずつ処理する
# その行の3列目に、キーを結合した文字列を追加する
row.push tmp_hash[ row[ 0 ] ].keys.join( "・" )
end

csv_str = result_ary.map( &:to_csv ).join # 2次元配列を、CSV 文字列に変換する
print csv_str
2021/03/16(火) 17:41:01.13ID:QPeaG/4LM
何故突然にRuby?
2021/03/16(火) 18:32:29.43ID:yEkj4Jws0
>>940
度々ありがとうございます!
最初ヤツでも今の所大丈夫そうでしたが、今後はこちらを使わせていただきます!

他の方もありがとうございます!
2021/03/16(火) 19:02:04.81ID:EUyNpk5n0
>>942
rubyスレだと相手にもされないからわざわざ違うスレに来てるかわいそうな人だよ
945デフォルトの名無しさん (ワッチョイ 7d5f-6Qoe)
垢版 |
2021/03/16(火) 21:06:28.11ID:8Gn4pDRu0
名前の例が○子とは、そうとうなジイさんだなw
2021/03/16(火) 21:12:32.28ID:gGJzxP62H
>>945
現代だとどう書くの?
ランキングによると結が人気あるらしいから結A、結B、結Cか
2021/03/16(火) 21:15:14.58ID:lullOsMB0
そら「百合(ろーず)」よ
948デフォルトの名無しさん (ワッチョイ 7d5f-6Qoe)
垢版 |
2021/03/16(火) 21:28:58.74ID:8Gn4pDRu0
>>946
なんで女なのか?
2021/03/16(火) 21:42:16.30ID:gGJzxP62H
そんなこと言ったら、なぜ日本人なのか、なぜ人類なのか
950デフォルトの名無しさん (ワッチョイ 7d5f-6Qoe)
垢版 |
2021/03/16(火) 21:51:49.14ID:8Gn4pDRu0
太郎、次郎、三郎、四郎、五郎でいいだろ。
2021/03/16(火) 21:55:45.14ID:YCs8uHit0
なんで男なのか?
2021/03/16(火) 22:05:23.00ID:gGJzxP62H
3000行もあるのに、それじゃ考えるのが大変だ
2021/03/16(火) 23:39:47.76ID:FDp5iKWO0
手作業でAからFカップを調べる作業にVBA使うとか
お前ら男として終わってるわマジで
2021/03/17(水) 00:14:55.79ID:8Ujh9QFC0
ろーずって薔薇じゃないの?
2021/03/17(水) 00:20:54.29ID:lKwA7qQn0
そうだよ
2021/03/17(水) 00:54:57.81ID:KXbC8pO1H
わざと間違えるっていう2chから続く伝統芸
https://i.imgur.com/h4Fip2L.jpg
2021/03/17(水) 02:44:52.10ID:LQZUutD10
>>933
いきなりCellsで始まるのはいただけないなw
できればブックから始める習慣を付けて欲しい。
2021/03/17(水) 03:45:50.60ID:KXbC8pO1H
>>957 なおした
Option Explicit
Sub VBA69_932()
  Dim A_number As Long, B_name As String, C_list As Object
  Dim last_row As Long, row_loop As Long, search_loop As Long
  Set C_list = CreateObject("Scripting.Dictionary")
  With ThisWorkbook.ActiveSheet
    last_row = .Range("A" & Rows.Count).End(xlUp).Row
    For row_loop = 1 To last_row
      C_list.RemoveAll
      A_number = .Range("A" & row_loop)
      For search_loop = 1 To last_row
        If .Range("A" & search_loop) = A_number Then
          B_name = .Range("B" & search_loop)
          If Not C_list.exists(B_name) Then
            C_list.Add (B_name), 0
          End If
        End If
      Next
      .Range("C" & row_loop) = Join(C_list.keys, "・")
    Next
  End With
End Sub
2021/03/17(水) 10:07:11.87ID:wJCP0FMq0
>>933
謎の変数名を多用するのやめてくれ。見る気が一瞬で失せる。
ネスト深くするのも罪悪感感じてくれ
2021/03/17(水) 10:20:01.36ID:QeKL1gNm0
配列でやれ
2021/03/17(水) 10:38:31.95ID:CnU6DmD/0
はい
2021/03/17(水) 10:48:27.37ID:AkcuhhXSr
れつ
2021/03/17(水) 10:49:53.05ID:rwSgtXuJ0
ゴー
2021/03/17(水) 10:52:25.95ID:KXbC8pO1H
>>960 なおした
Option Explicit
Sub VBA69_932_a()
  Dim This As Worksheet
  Dim table() As Variant
  Dim A_number As Long, B_name As String, C_list As Object
  Dim last_row As Long, row_loop As Long, search_loop As Long
  Set C_list = CreateObject("Scripting.Dictionary")
  Set This = ThisWorkbook.ActiveSheet
  last_row = This.Range("A" & Rows.Count).End(xlUp).Row
  ReDim table(last_row - 1, 2)
  table = This.Range("A1:C" & last_row)
  For row_loop = 1 To last_row
    A_number = table(row_loop, 1)
    C_list.RemoveAll
    For search_loop = 1 To last_row
      If table(search_loop, 1) = A_number Then
        B_name = table(search_loop, 2)
        If Not C_list.exists(B_name) Then
          C_list.Add (B_name), 0
        End If
      End If
    Next
    table(row_loop, 3) = Join(C_list.keys, "・")
  Next
  This.Range("A1:C" & last_row) = table
End Sub
2021/03/17(水) 10:59:16.82ID:AkcuhhXSr
変数にABCなんてのを使ってる時点でセンスゼロ
後で見て全くわからないバグの温床にしかならない
2021/03/17(水) 11:12:33.58ID:QeKL1gNm0
LBound UBound使えよ
2021/03/17(水) 11:56:37.23ID:KXbC8pO1H
>>965
お手本見せて
>>966
データ数は変数に入れたから改めて調べる必要ないという判断
968デフォルトの名無しさん (ワッチョイ 7d5f-6Qoe)
垢版 |
2021/03/17(水) 12:13:35.08ID:YH/YYkmR0
クソコード
2021/03/17(水) 12:27:17.82ID:rAxKrtcHF
うんコード
2021/03/17(水) 13:20:25.46ID:4HdAS7ns0
変数名に対する識者の見解
https://mevius.5ch.net/test/read.cgi/bsoft/1608362765/253n
2021/03/17(水) 14:37:09.94ID:rwSgtXuJ0
口だけで何もしない(できない)奴はスルーでいいよ
2021/03/17(水) 15:25:09.30ID:vF0LuwhE0
>>964
うーん
頭ごなしに糞というつもりはないけど
そうだね、もし改善点を挙げるとすれば・・・
まぁ聞き流して良いけどね。

・変数名は一貫性を持たせて、一見して何を意味しているのか分かるようにすること。
例えば頭の1文字が大文字だったり小文字しているのをキャメル形式に統一するとか。
・ActiveSheetは極力使わない。
キチンとした意味を持っているならそれでいいけど、フォームやツールバーから呼ばれることやそのように改修される可能性も考慮してどのシートを使うか明示的に指定する方が良い。
もちろんその際はシート名が変更されてしまうことを考慮して
シート名ではなくシートオブジェクト名を使用する。
・単一責任原則を踏襲する。
一つの関数またはメソッドに、一つの役割のみ持たせて一つの関数またはメソッドが増長になることを防ぐ。
とは言ってもこれは何を一つの役割とするかを決めるセンスが必要で、
これを上手く作れれば「糞」からひとつ脱却出来る。
後は趣味の問題だけど
・Withを使わないことに慣れる。
VBA → VB.Net → C#に移行したとき、Withが無いから慣れておくとちょっと楽。
・CreateObjectは使い所を考える。
CreateObjectはバージョンを考慮せずに済んだりする反面、
メソッドやプロパティのインテリセンスが効かなくなるため、タイプミスをし易くなるという欠点がある。
参照で繋ぐか、CreateObjectで作成するかは
一考した方が良い。

尚、本来Variant型は何でも入ってしまう危険な型なので
使わない方がいいと言いたいところだけど
EXCELのRangeオブジェクトとあまりに相性が良いから使うなとは言えない。
2021/03/17(水) 16:55:51.25ID:ttYMdvTCd
ワロタ
2021/03/17(水) 19:15:40.71ID:2RS2aA5zM
メガネをクイってしながら凄い早口で言ってそう
2021/03/17(水) 19:24:46.18ID:lGPcjQzL0
>>967
940が一番何をしてるのか分かりやすい
これにシート銘柄をしっかり記述すればよいのでは?
2021/03/17(水) 19:25:19.68ID:lGPcjQzL0
銘柄w
シート名ね
2021/03/17(水) 19:38:30.30ID:vF0LuwhE0
>>964
ついでにもう一つ言っておくと、
ディクショナリやコレクションの要素数は1バイトで扱える数、つまり1から数えて256まで。
着眼点は良かったけど、3000行を考慮すると
オーバーフローで落ちる可能性があるよ。
2021/03/17(水) 19:56:32.92ID:lKwA7qQn0
>>956
ちがう
金星(まぁず)ちゃんというDQNネームがあった
2021/03/17(水) 19:57:39.75ID:lGPcjQzL0
ディクショナリは重複確認用で3000データをまるまる格納する訳じゃないだろ
2021/03/17(水) 20:01:06.73ID:cHLiD5SO0
>>977
>ディクショナリやコレクションの要素数は1バイトで扱える数、つまり1から数えて256まで。
初耳
2021/03/17(水) 20:20:25.27ID:lKwA7qQn0
>>977
嘘を言うな
982デフォルトの名無しさん (ワッチョイ c2e6-0etX)
垢版 |
2021/03/17(水) 21:15:41.95ID:X8ZT7dpP0
256ページの辞書なんて存在するの?
2021/03/17(水) 21:56:14.59ID:2ghuU9if0
ウィンドウ上の制限
984デフォルトの名無しさん (ワッチョイ 7d5f-smt8)
垢版 |
2021/03/17(水) 23:33:51.91ID:YH/YYkmR0
経験からくる誤った思い込みだろうね。

1バイト単位の区切りというのは、8ビットパソコン時代からExcelが存在していれば、可能性としてあるが、16ビットパソコンから作っているのに1バイトという制限はありえない。
2021/03/17(水) 23:42:58.65ID:n+mEYgox0
ディクショナリとかコレクションとかが、具体的に何を指してるかにもよるんだが
まあ255個とかいう制限のディクショナリやコレクションは思いつかないが

EXCELに限れば、上限255とか256とかいう制限のものは今ですらちょこちょこあるんだぜ
https://support.microsoft.com/ja-jp/office/excel-%E3%81%AE%E4%BB%95%E6%A7%98%E3%81%A8%E5%88%B6%E9%99%90-1672b34d-7043-467e-8e27-269d656771c3#ID0EBABAAA=%E6%96%B0%E3%81%97%E3%81%84%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3
986デフォルトの名無しさん (ワッチョイ 7d5f-smt8)
垢版 |
2021/03/18(木) 00:01:49.93ID:7fQvPjcg0
>>985
論点ずらしだな。単純に初期のExcelの時代だとメモリ節約で1バイトにしただけで、足りないと判断されたものは、のちに2バイト、4バイト単位に変更されている。
2021/03/18(木) 00:28:15.06ID:POZoiR5o0
改善点とか言って挙げてる内容は偏ってて微妙だし知識も無いのに態度だけ上からだし昔の人はすごいなぁ
2021/03/18(木) 02:36:30.62ID:Z7yNcrmt0
>>985
例えば列の幅が255文字なのは別に1バイトで管理してるわけじゃなくて上限を設定してるだけだろ
そう言うのはExcelに限った話じゃないよ
2021/03/18(木) 13:11:04.06ID:VjRMlHUp0
>>941
11111,A子
11112,B子

Ruby で、こういうCSV ファイルを処理した場合、
辞書は、こうなる。
値のtrue に意味はない

{"11111"=>{"A子"=>true}, "11112"=>{"B子"=>true},
"11113"=>{"C子"=>true, "D子"=>true, "E子"=>true},
"11114"=>{"F子"=>true}, "11115"=>{"E子"=>true}}

F子は、重複しない
2021/03/18(木) 13:17:05.45ID:VjRMlHUp0
ただし、このファイルを、1パスでは処理できない

11113,C子
11113,D子
11113,E子

"11113"=>{"C子"=>true, "D子"=>true, "E子"=>true},

C子 を読み込んだ時点で、その行よりも後ろにある、
D子・E子 の情報を取得できないから

だから、>>941
では、データ配列を2回読んでいる
2021/03/18(木) 13:36:31.16ID:pzBF2kYz0
>>964
64bit版の時はlonglongで宣言するようにしないとエラーになる可能性があるよ
2021/03/18(木) 14:11:19.12ID:Z7yNcrmt0
>>991
3,000行ぐらいなのに?
2021/03/18(木) 14:55:42.20ID:pzBF2kYz0
そんな考えならプログラミングやめたほうが良いんじゃない
2021/03/18(木) 15:38:13.36ID:Z7yNcrmt0
何でもかんでもLongLong使うのが正解だとでも思ってるの?
995デフォルトの名無しさん (ワッチョイ 7d5f-smt8)
垢版 |
2021/03/18(木) 15:58:28.07ID:7fQvPjcg0
>>993 はデタラメを言っているな。妄想なのかな。
996デフォルトの名無しさん (ワッチョイ 7d5f-smt8)
垢版 |
2021/03/18(木) 16:01:58.30ID:7fQvPjcg0
他の言語や環境の仕様とごっちゃになってるんだろうな。

Excel VBAで32ビットと64ビットで、よく使われるデータ型に大きい違いがあるなんて聞いたことがない。
2021/03/18(木) 17:13:11.58ID:Z7yNcrmt0
LongLong は 64bit 環境でないとサポートされないとか LongPtr のビットサイズやバリアント型の文字列の付加サイズが 32bit と 64bit 環境で違うとかはあるけどまあ些細といえば些細な話だわな
そもそも現状最大行数が Long 型で扱えるのに >>991 が何を心配してるのか興味ある
998デフォルトの名無しさん (ワッチョイ 7d5f-smt8)
垢版 |
2021/03/18(木) 17:39:14.84ID:7fQvPjcg0
64ビットというのも何の組み合わせを言っているのかもわからない。

それにしてもここはマイクロソフトのサポートの人がいないか?

この中途半端さが日本マイクロソフト風なんだが。
レス数が950を超えています。1000を超えると書き込みができなくなります。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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