!extend:checked:vvvvv:1000:512
↑同じ内容を2行貼り付ける
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part66
https://mevius.5ch.net/test/read.cgi/tech/1589085825/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
Excel VBA 質問スレ Part67
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん (ワッチョイ 33da-3+hg)
2020/06/26(金) 02:01:29.56ID:uDfmpksE02デフォルトの名無しさん (ワッチョイ 3f01-bXJj)
2020/06/26(金) 07:58:40.55ID:PIx3bjtD0 >>1
おちゅ
おちゅ
3デフォルトの名無しさん (ワッチョイ 8fba-x+MM)
2020/06/26(金) 19:07:55.93ID:ZjxMZdyJ0 VBAでgrep検索を使いたいんだが教えてくれ。
https://website-note.net/vba/excel-grep-macro/
上のサイトのコードをコピペして動くまではいいんだけど、もう一つ条件を加えて
'キーワードを含むセルの情報をアウトプット時にキーワードの右のセルをアウトプットさせるようにしたい。
そこでOptionButtonを2つ作ってOpB1がtrueのときに普通に動いて、falseのときに
キーワードの右をアウトプットさせるコードを書いたんだがうまくいかない。
ifもselectcaseも試したんだけどだれか教えてくれ、VBA初心者で頭かかえてる。
つくったもの↓
'キーワードを含むセルの内容
If OptionButton1.value =then
省略 .Cells(lcnt, 7).Value = rFoundCell.Value
else
省略 .Cells(lcnt, 7).Value = rFoundCell.offset(0,1).Value
https://website-note.net/vba/excel-grep-macro/
上のサイトのコードをコピペして動くまではいいんだけど、もう一つ条件を加えて
'キーワードを含むセルの情報をアウトプット時にキーワードの右のセルをアウトプットさせるようにしたい。
そこでOptionButtonを2つ作ってOpB1がtrueのときに普通に動いて、falseのときに
キーワードの右をアウトプットさせるコードを書いたんだがうまくいかない。
ifもselectcaseも試したんだけどだれか教えてくれ、VBA初心者で頭かかえてる。
つくったもの↓
'キーワードを含むセルの内容
If OptionButton1.value =then
省略 .Cells(lcnt, 7).Value = rFoundCell.Value
else
省略 .Cells(lcnt, 7).Value = rFoundCell.offset(0,1).Value
4デフォルトの名無しさん (ワッチョイ 8f01-Zl/h)
2020/06/26(金) 20:08:11.16ID:SBXE4EMs0 ・OpB1って何ですか?丁寧に書いて
・せめてoutputCellInfoのソースは全部書いて
・=thenがガチなのかタイポなのか分からんから直打ちじゃなくてコピペして
・せめてoutputCellInfoのソースは全部書いて
・=thenがガチなのかタイポなのか分からんから直打ちじゃなくてコピペして
5デフォルトの名無しさん (ワッチョイ 3f01-bXJj)
2020/06/26(金) 20:20:30.07ID:PIx3bjtD0 日本語訳:
上のサイトのコードだと
キーワードを含むセルの値が、G列に出力されます。
これを以下のように変更したいです
キーワードを含むセルを検索したあと、このセルの値だけでなく、このセルのすぐ右側のセルの値をH列に出力したいです。
できたら、オプションボタンを新設して、右側セルの値を出力するかしないかを選択できるようにしたいです
面倒だから後はお前らにまかせた
上のサイトのコードだと
キーワードを含むセルの値が、G列に出力されます。
これを以下のように変更したいです
キーワードを含むセルを検索したあと、このセルの値だけでなく、このセルのすぐ右側のセルの値をH列に出力したいです。
できたら、オプションボタンを新設して、右側セルの値を出力するかしないかを選択できるようにしたいです
面倒だから後はお前らにまかせた
6デフォルトの名無しさん (ワッチョイ 8fba-x+MM)
2020/06/26(金) 20:26:55.66ID:ZjxMZdyJ0 >>4すみません、コードはります
Private Sub outputCellInfo(ByVal sTmpPath As String, ByVal sFilePath As String, ByVal sTmpSheetName As String, _
ByVal rFoundCell As Range)
Dim OptionButton1 As Boolean
If OptionButton1 = True Then
With ThisWorkbook.Sheets(STR_GREP_SHEET_NAME)
.Cells(lcnt, 2).Value = lcnt - 7
.Cells(lcnt, 3).Value = sFilePath
.Cells(lcnt, 4).Value = sTmpPath
.Cells(lcnt, 5).Value = sTmpSheetName
.Cells(lcnt, 6).Value = convertRange(rFoundCell.Column) & rFoundCell.Row
.Cells(lcnt, 7).Value = rFoundCell.Value
End With
lcnt = lcnt + 1
Else:
With ThisWorkbook.Sheets(STR_GREP_SHEET_NAME)
.Cells(lcnt, 2).Value = lcnt - 7
.Cells(lcnt, 3).Value = sFilePath
.Cells(lcnt, 4).Value = sTmpPath
.Cells(lcnt, 5).Value = sTmpSheetName
.Cells(lcnt, 6).Value = convertRange(rFoundCell.Column) & rFoundCell.Row
.Cells(lcnt, 7).Value = rFoundCell.Offset(0, 1).Value
End With
lcnt = lcnt + 1
End If
End Sub
Private Sub outputCellInfo(ByVal sTmpPath As String, ByVal sFilePath As String, ByVal sTmpSheetName As String, _
ByVal rFoundCell As Range)
Dim OptionButton1 As Boolean
If OptionButton1 = True Then
With ThisWorkbook.Sheets(STR_GREP_SHEET_NAME)
.Cells(lcnt, 2).Value = lcnt - 7
.Cells(lcnt, 3).Value = sFilePath
.Cells(lcnt, 4).Value = sTmpPath
.Cells(lcnt, 5).Value = sTmpSheetName
.Cells(lcnt, 6).Value = convertRange(rFoundCell.Column) & rFoundCell.Row
.Cells(lcnt, 7).Value = rFoundCell.Value
End With
lcnt = lcnt + 1
Else:
With ThisWorkbook.Sheets(STR_GREP_SHEET_NAME)
.Cells(lcnt, 2).Value = lcnt - 7
.Cells(lcnt, 3).Value = sFilePath
.Cells(lcnt, 4).Value = sTmpPath
.Cells(lcnt, 5).Value = sTmpSheetName
.Cells(lcnt, 6).Value = convertRange(rFoundCell.Column) & rFoundCell.Row
.Cells(lcnt, 7).Value = rFoundCell.Offset(0, 1).Value
End With
lcnt = lcnt + 1
End If
End Sub
7デフォルトの名無しさん (アウアウウー Sad3-fXbV)
2020/06/26(金) 20:40:26.18ID:nEhmFRZ4a なんでElseに:ついてんだ?
8デフォルトの名無しさん (アウアウウー Sad3-d3ZO)
2020/06/26(金) 20:40:29.37ID:1oZqQJala 張り付けたオプションボタンと定義したのは別物じゃね
9デフォルトの名無しさん (ワッチョイ 3f01-bXJj)
2020/06/26(金) 20:50:43.26ID:PIx3bjtD0 つか、そもそもそのサイトのコードって正確に動く?
キーワードを含むセルを網羅しないんだけど
nothingになるRangeを比較対象に置いてるあたりがあれだ
キーワードを含むセルを網羅しないんだけど
nothingになるRangeを比較対象に置いてるあたりがあれだ
10デフォルトの名無しさん (ワッチョイ 8fba-x+MM)
2020/06/26(金) 21:05:20.01ID:ZjxMZdyJ011デフォルトの名無しさん (ワッチョイ 8f01-Zl/h)
2020/06/26(金) 23:24:58.46ID:SBXE4EMs0 >>6
ぱっと見で分かるのは、OptionButton1が再定義されてて目的の値を参照してない事
Dim OptionButton1 を消して、>>3で自分で書いたようにOptionButton1.valueを評価してみて
あと、オブジェクト名にButtonって入ってるからコントロールだと思うけど、
もしコマンドボタンならこの用途でValueプロパティは使えないから、チェックボックスにしよう
解説サイトのソースも修正
grepExcelSheetメソッド
Loop While rTmpFoundCell <> rFoundFirstCell
↓
Loop While rTmpFoundCell.Address <> rFoundFirstCell.Address
openExcelFilesメソッド
sTmpPath = Dir(sFilePath & "*.xls")
↓
sTmpPath = Dir(sFilePath & "*.xls?")
それに伴って Do While sTmpPath <> "" 内の文を
If Not sTmpPath Like "*." & ThisWorkbook.Name Then 〜 End If
で括る
細かいこと言うと、Blean型を判定するときにリテラルと比較(= True や = False)はカッコ悪いから止めた方がいい
解説サイトではやってるけどね
ぱっと見で分かるのは、OptionButton1が再定義されてて目的の値を参照してない事
Dim OptionButton1 を消して、>>3で自分で書いたようにOptionButton1.valueを評価してみて
あと、オブジェクト名にButtonって入ってるからコントロールだと思うけど、
もしコマンドボタンならこの用途でValueプロパティは使えないから、チェックボックスにしよう
解説サイトのソースも修正
grepExcelSheetメソッド
Loop While rTmpFoundCell <> rFoundFirstCell
↓
Loop While rTmpFoundCell.Address <> rFoundFirstCell.Address
openExcelFilesメソッド
sTmpPath = Dir(sFilePath & "*.xls")
↓
sTmpPath = Dir(sFilePath & "*.xls?")
それに伴って Do While sTmpPath <> "" 内の文を
If Not sTmpPath Like "*." & ThisWorkbook.Name Then 〜 End If
で括る
細かいこと言うと、Blean型を判定するときにリテラルと比較(= True や = False)はカッコ悪いから止めた方がいい
解説サイトではやってるけどね
12デフォルトの名無しさん (ワッチョイ 8fba-U8IO)
2020/06/26(金) 23:25:32.05ID:ZjxMZdyJ0 >>3です
無理やりですが自己解決しました
標準モジュール2にアウトプットのコードをさわったものをコピペして
コマンドボタンクリックしたときの動作をIfでCallするようにしたら出来ました
でもやっぱりこのコード重いですね。どうにか軽くする方法無いものですかね。
無理やりですが自己解決しました
標準モジュール2にアウトプットのコードをさわったものをコピペして
コマンドボタンクリックしたときの動作をIfでCallするようにしたら出来ました
でもやっぱりこのコード重いですね。どうにか軽くする方法無いものですかね。
13デフォルトの名無しさん (ワッチョイ 8fba-U8IO)
2020/06/26(金) 23:28:15.39ID:ZjxMZdyJ0 >>11修正ありがとうございます、提案されたやり方も試してみます!
14デフォルトの名無しさん (ワッチョイ 4f5f-fXbV)
2020/06/26(金) 23:49:56.02ID:kQH1YyZn0 配列にすれば
あとやってるかとは思うけど自動計算と画面更新オフ
あとやってるかとは思うけど自動計算と画面更新オフ
15デフォルトの名無しさん (ワッチョイ 8fba-U8IO)
2020/06/26(金) 23:53:39.92ID:ZjxMZdyJ0 すみません、配列にするとはどういうことをすることですか?
16デフォルトの名無しさん (ワッチョイ 7fda-NJGG)
2020/06/27(土) 00:17:07.69ID:KqbSykww0 Cells(1, 1).Value = "あ"
Cells(1, 2).Value = "い"
Cells(1, 3).Value = "う"
↓ ↓ ↓
Range("A1:C1").Value = Array("あ", "い", "う")
1個ずつじゃなくて、一気に放り込めってことでしょう。>>15
Cells(1, 2).Value = "い"
Cells(1, 3).Value = "う"
↓ ↓ ↓
Range("A1:C1").Value = Array("あ", "い", "う")
1個ずつじゃなくて、一気に放り込めってことでしょう。>>15
17デフォルトの名無しさん (ワッチョイ 8f01-Zl/h)
2020/06/27(土) 02:29:31.12ID:gCUCp3Nd0 そこを高速化してもしかたないのでは・・・
18デフォルトの名無しさん (ワッチョイ cfda-NJGG)
2020/06/27(土) 05:22:36.02ID:J5vHObt/0 他人にコード書かせて動かしたら遅いと文句言うのって人としてどうなの?
19デフォルトの名無しさん (ワッチョイ 8fba-8HP2)
2020/06/27(土) 08:53:12.31ID:9qJBLgyD0 >>
20デフォルトの名無しさん (ワッチョイ 8ff1-of6p)
2020/06/27(土) 09:24:13.86ID:YKskLwzM0 <<
21デフォルトの名無しさん (アウアウエー Sabf-PKxn)
2020/06/27(土) 09:43:15.25ID:wwwZDyDia ビットシフトとは各桁を 1 桁左や右にずらすことです。
https://www.tipsfound.com/vba/02018
VBA にはそのような演算子はありませんが次のようにしてできます。
\ (2 ^ 1) ' 1 桁右へシフト
* (2 ^ 1) ' 1 桁左へシフト
https://www.tipsfound.com/vba/02018
VBA にはそのような演算子はありませんが次のようにしてできます。
\ (2 ^ 1) ' 1 桁右へシフト
* (2 ^ 1) ' 1 桁左へシフト
22デフォルトの名無しさん (ワッチョイ cfce-htoQ)
2020/06/27(土) 10:06:21.20ID:lV2RRwzl0 実行時エラー '6':
オーバーフローしました。
オーバーフローしました。
23デフォルトの名無しさん (ワッチョイ cf46-pKDl)
2020/06/27(土) 10:49:37.32ID:gKvpRzl30 今日は、タイマー作ってます。
IeTimerに
Private Sub IeTimer1_Timer()
Me.Label1 = Now
Me.IeTimer1.Interval = 1000 - (Timer Mod 1000)
End Sub
とかいて見たのですが、何か一秒の長さが変に感じます。
気のせいなんでしょうか?。
Excel 97
OS;Windows 98
機種;NEC VersaPro NX VP13C
IeTimerに
Private Sub IeTimer1_Timer()
Me.Label1 = Now
Me.IeTimer1.Interval = 1000 - (Timer Mod 1000)
End Sub
とかいて見たのですが、何か一秒の長さが変に感じます。
気のせいなんでしょうか?。
Excel 97
OS;Windows 98
機種;NEC VersaPro NX VP13C
24デフォルトの名無しさん (ワッチョイ cf46-pKDl)
2020/06/27(土) 10:55:33.95ID:gKvpRzl30 今日は、タイマー作ってます。
MsgBox 36000*24
はエラーにならないが
MsgBox 24*3600
は実行時エラーオーバーフローしました。
となります。
どうしてなんでしょうか?。
MsgBox 36000*24
はエラーにならないが
MsgBox 24*3600
は実行時エラーオーバーフローしました。
となります。
どうしてなんでしょうか?。
25デフォルトの名無しさん (アウアウエー Sabf-PKxn)
2020/06/27(土) 11:02:47.04ID:aTkq7ke+a >>23
教えてキャン>>98<<ビー
https://oshiete.goo.ne.jp/qa/597623.html
>Win98系のOSの場合ですが、処理中に、
頻繁にDoEventsを実行する必要があります。
これは、OSの特性です。
教えてキャン>>98<<ビー
https://oshiete.goo.ne.jp/qa/597623.html
>Win98系のOSの場合ですが、処理中に、
頻繁にDoEventsを実行する必要があります。
これは、OSの特性です。
26デフォルトの名無しさん (ワッチョイ cfce-htoQ)
2020/06/27(土) 11:13:07.90ID:lV2RRwzl0 釣りなのか本気なのか判断に困る質問だな
27デフォルトの名無しさん (ワッチョイ 3f7f-pPSV)
2020/06/27(土) 11:48:36.47ID:P+1UXm0n0 ヤベーイ
28デフォルトの名無しさん (ワッチョイ cfda-NJGG)
2020/06/27(土) 23:20:44.51ID:J5vHObt/0 動作がおかしいのは古いからじゃないかな
29デフォルトの名無しさん (ワッチョイ cfce-htoQ)
2020/06/28(日) 00:22:47.53ID:/mLredfO0 VBAで宣言せずに数式を書くと、式の中で最初に出てきた数字によって型が勝手に決められる仕様
小数点があったら、小数点以下が0でもDouble型
32767以下の整数はInteger型
32768以上の整数はLong型
になる
だから「24*3600」という式を書くと、最初に出てくる数字は24だからInteger型とみなされて、24*3600はInteger型の制限範囲を超えてるからエラーになる
変数を使わずに数値の型を指定したい時は型文字を使うか実数型にしてしまう
この場合は
24& * 3600 (Double型)
24.0 * 3600 (Double型)
24# * 3600 (Long型)
と書けばエラーにならない
ちなみにVBA(Excel)のバージョンは関係ない
最新でも仕様は変わってないから同じ所でエラーになる
小数点があったら、小数点以下が0でもDouble型
32767以下の整数はInteger型
32768以上の整数はLong型
になる
だから「24*3600」という式を書くと、最初に出てくる数字は24だからInteger型とみなされて、24*3600はInteger型の制限範囲を超えてるからエラーになる
変数を使わずに数値の型を指定したい時は型文字を使うか実数型にしてしまう
この場合は
24& * 3600 (Double型)
24.0 * 3600 (Double型)
24# * 3600 (Long型)
と書けばエラーにならない
ちなみにVBA(Excel)のバージョンは関係ない
最新でも仕様は変わってないから同じ所でエラーになる
30デフォルトの名無しさん (ワッチョイ 3f01-bXJj)
2020/06/28(日) 07:42:30.13ID:sqW+tWgm0 >>29
へー面白いね
へー面白いね
31デフォルトの名無しさん (ワッチョイ 3f7f-nmuj)
2020/06/28(日) 07:45:50.98ID:/E8O58u/0 プロジェクトウィンドウが何かの表紙に名前順にソートされてしまったんですが、標準モジュール、クラスモジュール等の階層表示ってどうやって戻すのでしょうか
32デフォルトの名無しさん (ワッチョイ 3fef-NJGG)
2020/06/28(日) 08:01:52.55ID:8pre44tM0 フォルダーの切り替え(黄色いフォルダの絵のアイコン) をクリック
33デフォルトの名無しさん (スップ Sddf-uLB2)
2020/06/28(日) 11:43:32.56ID:VHBre49Bd34デフォルトの名無しさん (ワッチョイ 8f40-Zl/h)
2020/06/28(日) 12:14:58.87ID:dFUOn9oJ0 適当なこと言っててワロタ
35デフォルトの名無しさん (ワッチョイ 7f8e-hynA)
2020/06/28(日) 13:50:31.47ID:Gnbk8j2I036デフォルトの名無しさん (ワッチョイ 7f8e-hynA)
2020/06/28(日) 13:50:52.16ID:Gnbk8j2I0 俺ではなくお礼
37デフォルトの名無しさん (ワッチョイ 0fac-G+5W)
2020/06/28(日) 14:21:14.54ID:t+bqi6uL0 俺
38デフォルトの名無しさん (ワッチョイ 8ff1-of6p)
2020/06/28(日) 14:41:16.58ID:O22xrl4H0 >>33
俺
俺
39デフォルトの名無しさん (アウアウエー Sabf-9ZHA)
2020/06/28(日) 15:17:28.32ID:IDO0V0ZPa dim 俺 as string
40デフォルトの名無しさん (アウウィフ FFd3-d3ZO)
2020/06/28(日) 16:12:05.93ID:WMjrpZfvF 俺 = "童貞"
41デフォルトの名無しさん (ブーイモ MM0f-tZ42)
2020/06/28(日) 16:56:51.40ID:69pcuKP2M Const 俺 As String = "童貞"
42デフォルトの名無しさん (アウアウエー Sabf-PKxn)
2020/06/28(日) 17:02:14.70ID:YhC9oGcZa Do While 俺
俺 = 1
If 俺 > 1 Then
Exit Do
End If
Loop
MsgBox "happy"
俺 = 1
If 俺 > 1 Then
Exit Do
End If
Loop
MsgBox "happy"
43デフォルトの名無しさん (ワッチョイ 8f40-Zl/h)
2020/06/28(日) 17:20:31.84ID:dFUOn9oJ0 >>35
式の中で最初に出てきた数字によって型が勝手に決められる → 嘘
32767以下の整数はInteger型 → 嘘
24& * 3600 (Double型) → 嘘
24# * 3600 (Long型) → 嘘
これで適当以外の何なんだよ
式の中で最初に出てきた数字によって型が勝手に決められる → 嘘
32767以下の整数はInteger型 → 嘘
24& * 3600 (Double型) → 嘘
24# * 3600 (Long型) → 嘘
これで適当以外の何なんだよ
4423 (ファミワイ FFb3-pKDl)
2020/06/28(日) 17:53:16.30ID:n2mRaag0F Timerに1000を掛けて見ても何か変だと思ったら
想定より早くIeTimerが実行される時があるみたいだ。
マシンの性能が良すぎるんですかね。
取り敢えず+200にして解決としときます。
MsgBoxの方は型とか考えたくないので
兎に角勉強になりました。 ありがとうございました。
想定より早くIeTimerが実行される時があるみたいだ。
マシンの性能が良すぎるんですかね。
取り敢えず+200にして解決としときます。
MsgBoxの方は型とか考えたくないので
兎に角勉強になりました。 ありがとうございました。
45デフォルトの名無しさん (ワッチョイ cfda-NJGG)
2020/06/28(日) 19:11:04.99ID:LbQBFJ/O0 >>24
MsgBox 24 * 3600
MsgBox 24 * 36000
1行目はオーバーフローがでる
2行目はエラーが出ないで普通に計算されます
MsgBox 24 * 3600
MsgBox 24 * 36000
1行目はオーバーフローがでる
2行目はエラーが出ないで普通に計算されます
46デフォルトの名無しさん (ワッチョイ 0f43-3pn7)
2020/06/28(日) 19:21:56.72ID:nTfCGwDP0 特定のフォルダ内のファイルのファイル名を変えて、ついでにプロパティのコメントにも文字を入力したいです
for each f in fol.files
f.name=ファイル名
f.comment=コメント
next
みたいな感じでやりたいんですが、f.commentではだめなようです
どう書けばいいか教えてください
for each f in fol.files
f.name=ファイル名
f.comment=コメント
next
みたいな感じでやりたいんですが、f.commentではだめなようです
どう書けばいいか教えてください
47デフォルトの名無しさん (ワッチョイ cfda-NJGG)
2020/06/28(日) 19:23:35.13ID:LbQBFJ/O0 Integer型 * Integer型 の計算結果が 32767を超えるとオーバーフローエラーがでる
Integer型 * Long型 の計算結果が 32767を超えてもエラーにならない
ってことじゃね
Integer型 * Long型 の計算結果が 32767を超えてもエラーにならない
ってことじゃね
48デフォルトの名無しさん (ワッチョイ 0fda-H7K1)
2020/06/28(日) 19:28:31.58ID:Vk36drdU0 win10でRS-232C使うとかなりの確率で
Set MSComm1 = New MSComm
のところでエラーになります
どうにかなりませんか
Set MSComm1 = New MSComm
のところでエラーになります
どうにかなりませんか
49デフォルトの名無しさん (ワッチョイ cfda-NJGG)
2020/06/28(日) 19:52:40.03ID:LbQBFJ/O0 >>48
EasyComm ってのに変えたほうがいいかも
EasyComm ってのに変えたほうがいいかも
50デフォルトの名無しさん (ワッチョイ cfda-NJGG)
2020/06/28(日) 20:30:15.72ID:LbQBFJ/O0 >>46
変更後のファイル名が重複するんじゃね
変更後のファイル名が重複するんじゃね
51デフォルトの名無しさん (ワッチョイ cfda-NJGG)
2020/06/28(日) 20:32:56.52ID:LbQBFJ/O0 >>46
あとファイルの種類によってはコメントが無いのもある
あとファイルの種類によってはコメントが無いのもある
52デフォルトの名無しさん (アウアウエー Sabf-PKxn)
2020/06/28(日) 20:35:06.31ID:+IGHtKO4a イジカミジゴー
53デフォルトの名無しさん (ブーイモ MM0f-nmuj)
2020/06/28(日) 20:39:46.50ID:yfJkjLDvM54デフォルトの名無しさん (アウアウエー Sabf-9ZHA)
2020/06/28(日) 21:16:46.93ID:yxdrwHPGa >>52
B'z乙
B'z乙
55デフォルトの名無しさん (アウアウウー Sad3-d3ZO)
2020/06/29(月) 10:38:25.17ID:2N59jCILa excel標準でmscommの開発用のライセンス無いよね?
56デフォルトの名無しさん (アウアウカー Sac3-jwjG)
2020/06/29(月) 13:58:37.89ID:T8IL5X90a B1の値に応じて、C1からC100の値が変動します
A1からA100までの文字列をB1に順番に入れていって、1回ごとにC1からC100を別シートのD列に上から順にコピーしていきたいです
A1からA100とC1からC100は、必ずしも100まで値が埋まっているわけではなく、途中までしか埋まっていないこともあります
別シートにコピーするときに、C列の空白分はコピーしないでD列に空白行を作らないようにしたいです
Array = Range(A1:A100)で配列になるらしいんですが、Forでループさせるときに1個ずつB1に入れていくところでつまずいてます
ここからどうやってA1からA100までを順番に取り出していけばいいのでしょうか?
それと、C列をコピーするときに空白のところまでで選択を止めて必要分だけコピーするにはどうすればいいですか?
A1からA100までの文字列をB1に順番に入れていって、1回ごとにC1からC100を別シートのD列に上から順にコピーしていきたいです
A1からA100とC1からC100は、必ずしも100まで値が埋まっているわけではなく、途中までしか埋まっていないこともあります
別シートにコピーするときに、C列の空白分はコピーしないでD列に空白行を作らないようにしたいです
Array = Range(A1:A100)で配列になるらしいんですが、Forでループさせるときに1個ずつB1に入れていくところでつまずいてます
ここからどうやってA1からA100までを順番に取り出していけばいいのでしょうか?
それと、C列をコピーするときに空白のところまでで選択を止めて必要分だけコピーするにはどうすればいいですか?
57デフォルトの名無しさん (ドコグロ MMbf-AMYG)
2020/06/29(月) 14:21:14.85ID:81b3XCdqM 二次元配列を一つずつ取り出すときはArray(上からの番号,1)
空白行までのコピーは
with worksheets(1)
.Range(.Cells(1,3) ,.Cells(1,3).End(xldown)).copy
end with
空白行までのコピーは
with worksheets(1)
.Range(.Cells(1,3) ,.Cells(1,3).End(xldown)).copy
end with
58デフォルトの名無しさん (ワッチョイ 3f01-bXJj)
2020/06/29(月) 15:29:59.45ID:TB+oeC/70 どういう配列が作られたのかがそもそもわかんないって話でしょ?
デバッグの仕方覚えて、Arrayに何が入るかを確認できるようになったほうがいいわ
どういう配列が入ってるのかも確認できずに中身取り出すとかそもそも間違ってる
一行ずつ実行しながらローカルウィンドウで確認すれば
例えばこんな感じで配列が作られるのが確認できる
https://i.imgur.com/wDjGPTf.png
デバッグの仕方覚えて、Arrayに何が入るかを確認できるようになったほうがいいわ
どういう配列が入ってるのかも確認できずに中身取り出すとかそもそも間違ってる
一行ずつ実行しながらローカルウィンドウで確認すれば
例えばこんな感じで配列が作られるのが確認できる
https://i.imgur.com/wDjGPTf.png
59デフォルトの名無しさん (アウアウカー Sac3-jwjG)
2020/06/29(月) 15:49:01.80ID:T8IL5X90a60デフォルトの名無しさん (ワッチョイ 3f01-bXJj)
2020/06/29(月) 15:52:32.50ID:TB+oeC/70 仮想COM使ってるバーコードリーダーからEasycomm使ってデータ読み取ろうとしたけどわからんかった
その辺の知識身につけたいんだけどとっかかりが分からない
知識ある人がうらやましい
その辺の知識身につけたいんだけどとっかかりが分からない
知識ある人がうらやましい
61デフォルトの名無しさん (アウアウエー Sabf-PKxn)
2020/06/29(月) 16:45:10.65ID:6d9dL1u1a62デフォルトの名無しさん (ワッチョイ 3f01-bXJj)
2020/06/29(月) 17:04:47.20ID:TB+oeC/70 >>61
いわゆるキーボードモード(USB HID)になってるようなバーコードリーダーならそうなんだけどね
今使ってるのは仮想COM(USB COM)の設定になってて、HIDに切り替えようとするとPC再起動
しないといけなかったり、何かと面倒なんだわ
COMモードじゃないとシステムに入力出来なかったりするものもあるしね
勝手にやっちゃうと職場の他の人に迷惑かけるし
そこでなんとかCOMモードのままでHID的にエクセルに出力できないかなって。
NW7のバーコード読取り結果を出力させたいってだけなんだけど、うまくいかなかった
いわゆるキーボードモード(USB HID)になってるようなバーコードリーダーならそうなんだけどね
今使ってるのは仮想COM(USB COM)の設定になってて、HIDに切り替えようとするとPC再起動
しないといけなかったり、何かと面倒なんだわ
COMモードじゃないとシステムに入力出来なかったりするものもあるしね
勝手にやっちゃうと職場の他の人に迷惑かけるし
そこでなんとかCOMモードのままでHID的にエクセルに出力できないかなって。
NW7のバーコード読取り結果を出力させたいってだけなんだけど、うまくいかなかった
63デフォルトの名無しさん (アウアウエー Sabf-PKxn)
2020/06/29(月) 17:16:51.22ID:6d9dL1u1a 基幹システムとExcelが分離してるなら
キーボードを別のキーボードにするだけの事だから
数千円でUSBバーコードリーダー買ってきてぶっ刺した方が早そう
キーボードを別のキーボードにするだけの事だから
数千円でUSBバーコードリーダー買ってきてぶっ刺した方が早そう
64デフォルトの名無しさん (ワッチョイ 3f01-bXJj)
2020/06/29(月) 17:27:14.16ID:TB+oeC/70 おっしゃる通りなんだけど
そこに立ちはだかる「セキュリティ?」の壁なんだわ
特にハードは目に見える分、よく分かってないお偉いさんでも口挟んでくる
おれ超末端だからハード新規導入は無理だ
ソフトは誤魔化せるんでこっちから攻めたかった
そこに立ちはだかる「セキュリティ?」の壁なんだわ
特にハードは目に見える分、よく分かってないお偉いさんでも口挟んでくる
おれ超末端だからハード新規導入は無理だ
ソフトは誤魔化せるんでこっちから攻めたかった
65デフォルトの名無しさん (アウアウエー Sabf-PKxn)
2020/06/29(月) 17:37:54.02ID:6d9dL1u1a それ、どっちがセキュアなんだかw
SD120(バーコードリーダー)を仮想シリアル通信で利用する
https://kagamikarasu.net/sd120_barcodereader_serial/
>これでプログラムに組み込むのが容易になるかと思います。
その先は知らん!
SD120(バーコードリーダー)を仮想シリアル通信で利用する
https://kagamikarasu.net/sd120_barcodereader_serial/
>これでプログラムに組み込むのが容易になるかと思います。
その先は知らん!
66デフォルトの名無しさん (ワッチョイ cfda-NJGG)
2020/06/29(月) 17:47:36.41ID:pfpn6QaF0 >>64
上司に黙ってソフト変更とかするほうがセキュリティー的にNGだろ
上司に黙ってソフト変更とかするほうがセキュリティー的にNGだろ
67デフォルトの名無しさん (オッペケ Sra3-G+5W)
2020/06/29(月) 17:50:11.99ID:j9Yq0PlQr 業務時間も資産も使うんだし相談なり申請なりはしとけよ
68デフォルトの名無しさん (ワッチョイ 3f01-bXJj)
2020/06/29(月) 17:50:20.02ID:TB+oeC/70 ちょ、そこで終わられても
69デフォルトの名無しさん (ワッチョイ cfda-NJGG)
2020/06/29(月) 18:01:00.81ID:pfpn6QaF0 うまくいかないって具体的なエラーや表示もないし
どこまでできて何ができないか書いてないよね
どこまでできて何ができないか書いてないよね
70デフォルトの名無しさん (ワッチョイ 3f01-bXJj)
2020/06/29(月) 18:11:42.18ID:TB+oeC/70 セキュリティー的にはな、
でもうちのは「セキュリティ?」だから
>>69
一応何らかのデータは取得できてて、不正確な数字やらスペースやらは羅列される
まぁそもそも仕組み分からず動かしてる段階で自分としては納得出来てないんで
その辺を学習できるとっかかりが見つかればと思って書いてみただけ
心当たりなければいいよ
いそぐものでもないし課題の1つとして気長に取り組んでみるわ
でもうちのは「セキュリティ?」だから
>>69
一応何らかのデータは取得できてて、不正確な数字やらスペースやらは羅列される
まぁそもそも仕組み分からず動かしてる段階で自分としては納得出来てないんで
その辺を学習できるとっかかりが見つかればと思って書いてみただけ
心当たりなければいいよ
いそぐものでもないし課題の1つとして気長に取り組んでみるわ
71デフォルトの名無しさん (ラクッペペ MM4f-TKJB)
2020/06/29(月) 18:19:31.08ID:6uUvaw7SM 関係ないけどcomってコミュニケーションのCOMでいいんだっけ?
昔 .com をカンパニーだと思ってたワシ
昔 .com をカンパニーだと思ってたワシ
72デフォルトの名無しさん (アウアウエー Sabf-PKxn)
2020/06/29(月) 18:42:30.00ID:6d9dL1u1a >>70
データ変換はこのスレの範疇なようなスレチの様な
1次元のいわゆる白黒バーコードはバイナリだから
https://ja.m.wikipedia.org/wiki/シリアルポート
とキーエンスのバーコード講座NW7
https://www.keyence.co.jp/ss/products/autoid/codereader/basic-nw7.jsp
でもお勉強しないとわかりません。
データ変換はこのスレの範疇なようなスレチの様な
1次元のいわゆる白黒バーコードはバイナリだから
https://ja.m.wikipedia.org/wiki/シリアルポート
とキーエンスのバーコード講座NW7
https://www.keyence.co.jp/ss/products/autoid/codereader/basic-nw7.jsp
でもお勉強しないとわかりません。
73デフォルトの名無しさん (オッペケ Sra3-5+Fh)
2020/06/29(月) 18:57:10.02ID:2GVfwDQBr74デフォルトの名無しさん (ワッチョイ 3f01-bXJj)
2020/06/29(月) 19:27:50.46ID:TB+oeC/7075デフォルトの名無しさん (アウアウエー Sabf-PKxn)
2020/06/29(月) 19:33:50.23ID:6d9dL1u1a >>74
同じ品番のバーコードリーダーを買いましょうw
同じ品番のバーコードリーダーを買いましょうw
76デフォルトの名無しさん (ワッチョイ cfda-NJGG)
2020/06/29(月) 19:40:44.57ID:pfpn6QaF0 なんでわざわざコンプライアンスを破ろうとするのかわからん
77デフォルトの名無しさん (スップ Sddf-uLB2)
2020/06/29(月) 20:58:53.82ID:p0BvfhePd >>70
昔、そういうハードのサポートしてた。
POS関連でバーコ―ドリーダー、レシートプリンタ、何とかディスプレイ(金額表示)、キャッシュドロワーとか。
シリアルならフロー制御がどうなってるかとか含めて、ちゃんと設定しないとダメだぞ。
昔、そういうハードのサポートしてた。
POS関連でバーコ―ドリーダー、レシートプリンタ、何とかディスプレイ(金額表示)、キャッシュドロワーとか。
シリアルならフロー制御がどうなってるかとか含めて、ちゃんと設定しないとダメだぞ。
78デフォルトの名無しさん (ワッチョイ 3fb5-jCQM)
2020/06/29(月) 22:23:41.83ID:R8I/2vyw0 ユーザーフォームに元に戻すボタンを作ろうと
奮闘中
・ブックやシート、列行の削除や挿入などはやらない
・セル内の数値同士の計算などをやらせる
基本的に無理だから*2のに対しては/2のボタン
とか逆を割り当てていこうかと思ったら四捨五入で座礁しますた
記録して元に復元させるってやり方かぁ
ムズそうすぎてちょっとあきらめてる
使用者には間違えるなと言うしかないか…
奮闘中
・ブックやシート、列行の削除や挿入などはやらない
・セル内の数値同士の計算などをやらせる
基本的に無理だから*2のに対しては/2のボタン
とか逆を割り当てていこうかと思ったら四捨五入で座礁しますた
記録して元に復元させるってやり方かぁ
ムズそうすぎてちょっとあきらめてる
使用者には間違えるなと言うしかないか…
79デフォルトの名無しさん (アウアウエー Sabf-PKxn)
2020/06/29(月) 22:35:48.51ID:6d9dL1u1a80デフォルトの名無しさん (ワッチョイ 3fb5-jCQM)
2020/06/29(月) 22:40:32.32ID:R8I/2vyw081デフォルトの名無しさん (アウアウエー Sabf-PKxn)
2020/06/29(月) 22:44:33.56ID:9POaIpQ1a82デフォルトの名無しさん (ワッチョイ 3fb5-jCQM)
2020/06/29(月) 22:50:58.30ID:R8I/2vyw0 一応タブ分けしてみた
一番左はデータを指定したシートに全部読み込む
次のタブで選択セル±の反転をさせる
最初はabsで絶対値にすればいいかと思ったけどマイナス値が必要な数値があったため*-1で
その次のタブで四捨五入
選択セルを0.00まで四捨五入するボタンと
0.0まで四捨五入するボタン
最後のタブで選択セル-A列にある数値の
引き算をさせるボタン
なんか工程毎にタブ分けしてみたけど
慣れないとみんな使いにくそう
なかなかなぁ
一番左はデータを指定したシートに全部読み込む
次のタブで選択セル±の反転をさせる
最初はabsで絶対値にすればいいかと思ったけどマイナス値が必要な数値があったため*-1で
その次のタブで四捨五入
選択セルを0.00まで四捨五入するボタンと
0.0まで四捨五入するボタン
最後のタブで選択セル-A列にある数値の
引き算をさせるボタン
なんか工程毎にタブ分けしてみたけど
慣れないとみんな使いにくそう
なかなかなぁ
83デフォルトの名無しさん (アウアウエー Sabf-PKxn)
2020/06/29(月) 23:04:34.75ID:SxZPiP67a84デフォルトの名無しさん (ワッチョイ 3fb5-jCQM)
2020/06/29(月) 23:31:00.77ID:R8I/2vyw085デフォルトの名無しさん (ワッチョイ 0fda-H7K1)
2020/06/29(月) 23:34:38.34ID:PVh3udJT0 操作する前に、シートをコピーして非表示にしとけば
戻すボタンでコピーしておいたシートに差し替えて戻すw
戻すボタンでコピーしておいたシートに差し替えて戻すw
86デフォルトの名無しさん (ワッチョイ cfda-NJGG)
2020/06/30(火) 00:16:48.03ID:HFjntDoM0 間違えることくらいあるだろう
人間だもの
人間だもの
87デフォルトの名無しさん (アウアウエー Sabf-PKxn)
2020/06/30(火) 00:22:19.44ID:l6PnVpoXa88デフォルトの名無しさん (スップ Sddf-uLB2)
2020/06/30(火) 08:45:53.97ID:LUNyPqILd >>84
根本的な考え方が違う。
フォームの内容を全部ユーザー定義かクラスに持たせて、そこ経由で動作させるようにする。
何かの動作はユーザー定義を元に動作させ、ユーザー定義をフォームに読み込むようにすれば簡単だ。
根本的な考え方が違う。
フォームの内容を全部ユーザー定義かクラスに持たせて、そこ経由で動作させるようにする。
何かの動作はユーザー定義を元に動作させ、ユーザー定義をフォームに読み込むようにすれば簡単だ。
89デフォルトの名無しさん (ワッチョイ cfda-NJGG)
2020/06/30(火) 17:46:29.02ID:HFjntDoM0 普段からそういうの慣れてる人ならできるだろうが初心者に言っても無理だろ
90デフォルトの名無しさん (ワッチョイ 3fb5-jCQM)
2020/06/30(火) 18:08:03.74ID:ulIgP7Tu091デフォルトの名無しさん (ワッチョイ cfcc-pPzt)
2020/06/30(火) 18:34:02.50ID:iUIa6Vpk0 配列の勉強中です
1行目にタイトルが入っていて、2行目以降に値が入っているシートで、C列に"年"、D列に"月"、E列に"日"が入っています。
そこで、同じ行のA列にC〜Eの値を結合して「年/月/日」の表示にしたいのですが、配列を使うにはどう書けばいいでしょうか?
Sub Test()
Dim i As Long
Dim LastRow As Long
LastRow = Cells(Rows.Count, 2).End(xlUp).Row
ReDim MyArray(LastRow - 2, 3) As Variant
ReDim DayArray(LastRow - 2) As Variant
MyArray = Range("C2:E" & LastRow)
For i = 0 To LastRow - 2
DayArray(i) = MyArray(i, 1) & "/" & MyArray(i, 2) & "/" & MyArray(i, 3)
Next i
Range("A2:A" & LastRow) = DayArray
End Sub
1行目にタイトルが入っていて、2行目以降に値が入っているシートで、C列に"年"、D列に"月"、E列に"日"が入っています。
そこで、同じ行のA列にC〜Eの値を結合して「年/月/日」の表示にしたいのですが、配列を使うにはどう書けばいいでしょうか?
Sub Test()
Dim i As Long
Dim LastRow As Long
LastRow = Cells(Rows.Count, 2).End(xlUp).Row
ReDim MyArray(LastRow - 2, 3) As Variant
ReDim DayArray(LastRow - 2) As Variant
MyArray = Range("C2:E" & LastRow)
For i = 0 To LastRow - 2
DayArray(i) = MyArray(i, 1) & "/" & MyArray(i, 2) & "/" & MyArray(i, 3)
Next i
Range("A2:A" & LastRow) = DayArray
End Sub
92デフォルトの名無しさん (ワッチョイ 4fe6-TKJB)
2020/06/30(火) 18:39:14.24ID:Z3NkR/bn0 数式張り付けろや
93デフォルトの名無しさん (ワッチョイ 4f7c-H7K1)
2020/06/30(火) 18:47:22.61ID:x94da/wE0 >>91
代入先がLastRow-1行1列の2次元なら配列もそうせんと
代入先がLastRow-1行1列の2次元なら配列もそうせんと
95デフォルトの名無しさん (ワッチョイ 4f7c-H7K1)
2020/06/30(火) 19:24:15.34ID:x94da/wE0 >>94
何の書き方?配列サイズを代入先セル範囲の行数と列数分用意するだけだぞ
何の書き方?配列サイズを代入先セル範囲の行数と列数分用意するだけだぞ
9691 (ワッチョイ cfcc-pPzt)
2020/06/30(火) 19:40:39.93ID:iUIa6Vpk0 ↓ですか?
"インデックスが有効範囲にありません"のエラーがでます
Dim i As Long
Dim LastRow As Long
LastRow = Cells(Rows.Count, 2).End(xlUp).Row
ReDim MyArray(LastRow - 2, 3) As Variant
ReDim DayArray(LastRow - 2, 1) As Variant
MyArray = Range("C2:E" & LastRow)
For i = 0 To LastRow - 2
DayArray(i, 1) = MyArray(i, 1) & "/" & MyArray(i, 2) & "/" & MyArray(i, 3)
Next i
Range("A2:A" & LastRow) = DayArray
"インデックスが有効範囲にありません"のエラーがでます
Dim i As Long
Dim LastRow As Long
LastRow = Cells(Rows.Count, 2).End(xlUp).Row
ReDim MyArray(LastRow - 2, 3) As Variant
ReDim DayArray(LastRow - 2, 1) As Variant
MyArray = Range("C2:E" & LastRow)
For i = 0 To LastRow - 2
DayArray(i, 1) = MyArray(i, 1) & "/" & MyArray(i, 2) & "/" & MyArray(i, 3)
Next i
Range("A2:A" & LastRow) = DayArray
97デフォルトの名無しさん (ワッチョイ fff7-pPzt)
2020/06/30(火) 19:42:59.95ID:s83lPCQk0 配列数クソめんどいからこれでいいよ
Sub test()
Dim endRow As Long
endRow = ActiveSheet.UsedRange.Rows.Count
Dim ary As Variant
ary = Range(Cells(1, 1), Cells(endRow, 5)).Value
Dim i As Long
For i = 1 To endRow Step 1
ary(i, 1) = VBA.DateSerial(ary(i, 3), ary(i, 4), ary(i, 5))
Next i
Range(Cells(1, 1), Cells(endRow, 1)).Value = ary
End Sub
Sub test()
Dim endRow As Long
endRow = ActiveSheet.UsedRange.Rows.Count
Dim ary As Variant
ary = Range(Cells(1, 1), Cells(endRow, 5)).Value
Dim i As Long
For i = 1 To endRow Step 1
ary(i, 1) = VBA.DateSerial(ary(i, 3), ary(i, 4), ary(i, 5))
Next i
Range(Cells(1, 1), Cells(endRow, 1)).Value = ary
End Sub
98デフォルトの名無しさん (ワッチョイ fff7-pPzt)
2020/06/30(火) 19:47:07.61ID:s83lPCQk0 range.valueからできる二次元配列の開始番号は0ではなく、1ですねえ
100デフォルトの名無しさん (ワッチョイ 4f5f-fXbV)
2020/06/30(火) 20:21:46.34ID:h7LW9tmr0 0番目のセルは無いのに0番目の配列要素はあるから面倒臭いよな
101デフォルトの名無しさん (ワッチョイ 4f7c-H7K1)
2020/06/30(火) 20:28:40.73ID:x94da/wE0 場合によってはoffset(i)にすればよい
10291 (ワッチョイ cfcc-pPzt)
2020/06/30(火) 20:44:53.74ID:iUIa6Vpk0 すみません勘違いをしていました。最終行の
「Range("A2:A" & LastRow) = DayArray」
だと、A列が2行目以降空欄になってしまいます。
「Range(Cells(2, 1), Cells(LastRow, 1)) = DayArray」
も同じでしたが、
For i = 2 To LastRow
Range("A" & i) = DayArray(i - 1, 1)
Next i
だと入りますが、できれば一括で置き換えたいので、正しい書き方を教えてください
「Range("A2:A" & LastRow) = DayArray」
だと、A列が2行目以降空欄になってしまいます。
「Range(Cells(2, 1), Cells(LastRow, 1)) = DayArray」
も同じでしたが、
For i = 2 To LastRow
Range("A" & i) = DayArray(i - 1, 1)
Next i
だと入りますが、できれば一括で置き換えたいので、正しい書き方を教えてください
103デフォルトの名無しさん (ワッチョイ 4f7c-H7K1)
2020/06/30(火) 20:53:49.15ID:x94da/wE010491 (ワッチョイ cfcc-pPzt)
2020/06/30(火) 21:20:49.01ID:iUIa6Vpk0 >>103
Forの処理をこれに変えたらできました。ありがとうございます
DayArray(i - 1, 0) = MyArray(i, 1) & "/" & MyArray(i, 2) & "/" & MyArray(i, 3)
Forの処理をこれに変えたらできました。ありがとうございます
DayArray(i - 1, 0) = MyArray(i, 1) & "/" & MyArray(i, 2) & "/" & MyArray(i, 3)
105デフォルトの名無しさん (スプッッ Sd5f-at/t)
2020/06/30(火) 21:53:25.32ID:5LSCXiWjd ListView(lvw1、lvw2)を2つ用意して、それぞれに同じデータを同じ順番に追加した状態です。
矢印キーの上下でlvw1とlvw2の同行選択状態ってどうやってやるんですか?
矢印キーの上下でlvw1とlvw2の同行選択状態ってどうやってやるんですか?
106デフォルトの名無しさん (アウアウウー Sad3-fXbV)
2020/06/30(火) 22:01:34.74ID:3GBrKjbXa >>105
1と2で同じ操作をやりたいなら、別プロシージャに切り分けて(関数化)それをそれぞれに処理する方がわかりやすい
1と2で同じ操作をやりたいなら、別プロシージャに切り分けて(関数化)それをそれぞれに処理する方がわかりやすい
107デフォルトの名無しさん (ワッチョイ 4f7c-H7K1)
2020/06/30(火) 22:14:31.69ID:x94da/wE0 >>105
keydownイベントで上下の時になんやかんやする
keydownイベントで上下の時になんやかんやする
108デフォルトの名無しさん (ワッチョイ 4f7c-H7K1)
2020/06/30(火) 22:19:33.56ID:x94da/wE0 操作に関わらず一緒でいいならchangeイベントで楽に済ませられるが…
109デフォルトの名無しさん (ワッチョイ 3fb5-jCQM)
2020/06/30(火) 22:39:03.05ID:ulIgP7Tu0 Sub 四捨五入()
Dim PP As Range
Dim SELU As Range Set PP = Selection.EntireRow Set PP = Intersect(PP, Range("G:AE")) If WorksheetFunction.Count(PP) = 0 Then Exit Sub Set PP = PP.SpecialCells(xlCellTypeConstants, xlNumbers) For Each SELU In PP SELU = Round(SELU, 2) SELU.NumberFormatLocal = "0.00;-0.00;0" Next SELU End Sub
昨日の俺です
こんな感じで四捨五入をしてる
やはり記録するかコピーしといて間違えたら戻す作戦かなあ
Dim PP As Range
Dim SELU As Range Set PP = Selection.EntireRow Set PP = Intersect(PP, Range("G:AE")) If WorksheetFunction.Count(PP) = 0 Then Exit Sub Set PP = PP.SpecialCells(xlCellTypeConstants, xlNumbers) For Each SELU In PP SELU = Round(SELU, 2) SELU.NumberFormatLocal = "0.00;-0.00;0" Next SELU End Sub
昨日の俺です
こんな感じで四捨五入をしてる
やはり記録するかコピーしといて間違えたら戻す作戦かなあ
110デフォルトの名無しさん (オッペケ Sra3-gdfu)
2020/06/30(火) 22:56:39.68ID:RrxBtxCBr A列とB列にXYデータが書かれているファイルがある
このファイルが複数あり、データを縦にくっつけてひとつのファイルにする方法をお願い致します。
このファイルが複数あり、データを縦にくっつけてひとつのファイルにする方法をお願い致します。
111デフォルトの名無しさん (ドコグロ MMc3-qQym)
2020/06/30(火) 23:33:01.16ID:ayj87xxdM >>110
「vba 別のブック間 コピー」でググればそれなりの答えのサイトは出てくるよ
「vba 別のブック間 コピー」でググればそれなりの答えのサイトは出てくるよ
112デフォルトの名無しさん (ワッチョイ 1fe3-BXkI)
2020/07/01(水) 16:24:36.34ID:/ZTplk5x0 グラフの列の範囲を1つ進めて、範囲が変わったグラフを眺めてまた次の範囲を選択するマクロにしたいのですが、うまくいきません。
sleepで5秒待機するループにすると、マクロが終わるまでグラフはそのままです。
何か良い方法はありますか?
sleepで5秒待機するループにすると、マクロが終わるまでグラフはそのままです。
何か良い方法はありますか?
113デフォルトの名無しさん (ワッチョイ bf7c-c9XW)
2020/07/01(水) 16:38:43.05ID:ufrQ+5Zi0 新しい表示にしてから待機したらいいんでないの
114デフォルトの名無しさん (ワッチョイ 1ecc-VQSO)
2020/07/01(水) 17:00:30.01ID:JVz0cdM50 DoEvents
115デフォルトの名無しさん (ワッチョイ 3a33-h2ht)
2020/07/01(水) 17:01:38.04ID:wdJg4V2k0 眺め終わったら自分でボタン押す仕様にすればいい
116デフォルトの名無しさん (アウアウエー Sa82-qC4h)
2020/07/01(水) 18:02:59.35ID:cdm/n45Wa 眺めるってw
117デフォルトの名無しさん (オッペケ Sr23-aBdg)
2020/07/01(水) 18:14:23.56ID:BGy1oUher A列に上から1万個くらいのデータがある。
ある値以下なら行全体削除、上詰めにするマクロをお願い致します。
ググってもまとをえたのがなく困ってます。
ある値以下なら行全体削除、上詰めにするマクロをお願い致します。
ググってもまとをえたのがなく困ってます。
118デフォルトの名無しさん (ワッチョイ bf7c-c9XW)
2020/07/01(水) 18:21:37.82ID:ufrQ+5Zi0 >>117
作業列作ってある値以下なら1立てる→1でオートフィルタ→行削除
作業列作ってある値以下なら1立てる→1でオートフィルタ→行削除
119デフォルトの名無しさん (ワッチョイ 87da-VQSO)
2020/07/01(水) 18:24:14.85ID:g4YauoQu0 >>117
どうせ暇なんだろ、1万くらい手作業でやれよ
どうせ暇なんだろ、1万くらい手作業でやれよ
120デフォルトの名無しさん (アウウィフ FFcf-ewff)
2020/07/01(水) 18:24:43.29ID:v2a99oiHF121デフォルトの名無しさん (ワッチョイ 0b09-ERT+)
2020/07/01(水) 18:34:27.89ID:5XfsDMDI0 wordをcomで操作しているんですが、基本的にcomは
同期処理できないんですか?
たとえば、よくあるprintout(wordVBAの)〜Set wordApp = Nothing
の流れなんかは、Application.Waitを入れないと印刷される前に
終わってしまいます。
同期処理できないんですか?
たとえば、よくあるprintout(wordVBAの)〜Set wordApp = Nothing
の流れなんかは、Application.Waitを入れないと印刷される前に
終わってしまいます。
122デフォルトの名無しさん (ワッチョイ 1e61-LTdq)
2020/07/01(水) 18:38:53.74ID:34UZRJ820 >>117
dim r as long
dim was as excel.worksheet
set we=activesheet
Do while r>0
if ws.cells(r,”A”)<ある値 then
ws.rows(r).delete shift:=xlup
else
r=r-1
end if
loop
パフォーマンスは知らん
dim r as long
dim was as excel.worksheet
set we=activesheet
Do while r>0
if ws.cells(r,”A”)<ある値 then
ws.rows(r).delete shift:=xlup
else
r=r-1
end if
loop
パフォーマンスは知らん
123デフォルトの名無しさん (ワッチョイ 87da-VQSO)
2020/07/01(水) 19:21:24.82ID:g4YauoQu0 そして動かないとか言ってくる初心者
124デフォルトの名無しさん (ワッチョイ 8f5f-ewff)
2020/07/01(水) 19:44:41.54ID:l3YNJLMh0 deleteは重いわ誤作動起こしやすいわいいことないよな
125デフォルトの名無しさん (ワッチョイ 0a02-DLMH)
2020/07/01(水) 19:59:04.37ID:fKGbFrld0 誤作動なんて起こすの?
単にセル番号計算ミスしたスクリプト書くだけなら理解できるけど、誤作動なんてあったら使えないな
単にセル番号計算ミスしたスクリプト書くだけなら理解できるけど、誤作動なんてあったら使えないな
126デフォルトの名無しさん (アウアウウー Sacf-PG6b)
2020/07/01(水) 20:06:30.76ID:Tir3cVcXa フィルターかけてカレントリージョンでコピーして新規シートに貼り付けが良さそう
127デフォルトの名無しさん (ドコグロ MMc2-4eOZ)
2020/07/01(水) 21:01:32.84ID:v34eJavmM128デフォルトの名無しさん (ワッチョイ 1eae-M/Ft)
2020/07/01(水) 21:43:01.53ID:H9TCgnXe0 Webで見たぐらいの初心者なのですが
書式設定の複数1行列を色変える作業が
200回ほどやらなきゃいけなく
マクロ組んでみようかと頑張ったのですが
上手くいきません
Dim a As Integer
Dim row1 As Integer
row1 = 3
For a = 0 To 200
Columns("row1 + a , P + a").Select
Selection.Format Conditions.以下略
Selection.Format Conditions以下略
With Selection.略
Selection略
Selection略
Selection略
End With
Next a
row1を無くしてb=3
これをColumnsをRange(b+a,b+a)
で出来ますでしょうか?
Rangeの指定カッコ内では数式を入れられないとかありますか?
書式設定の複数1行列を色変える作業が
200回ほどやらなきゃいけなく
マクロ組んでみようかと頑張ったのですが
上手くいきません
Dim a As Integer
Dim row1 As Integer
row1 = 3
For a = 0 To 200
Columns("row1 + a , P + a").Select
Selection.Format Conditions.以下略
Selection.Format Conditions以下略
With Selection.略
Selection略
Selection略
Selection略
End With
Next a
row1を無くしてb=3
これをColumnsをRange(b+a,b+a)
で出来ますでしょうか?
Rangeの指定カッコ内では数式を入れられないとかありますか?
129デフォルトの名無しさん (ワッチョイ 1eae-M/Ft)
2020/07/01(水) 22:17:29.48ID:H9TCgnXe0 Range(cells(a,1),cells(a,16)).Select
でやってみます
でやってみます
130デフォルトの名無しさん (アウアウウー Sacf-ewff)
2020/07/01(水) 22:45:11.71ID:xxJ42X4qa 何故初心者はSelectしたがるのか
131デフォルトの名無しさん (ドコグロ MM2b-21HI)
2020/07/01(水) 23:36:22.71ID:yn1qRX7nM132デフォルトの名無しさん (ワッチョイ 87da-z1wt)
2020/07/02(木) 01:40:39.72ID:Y/spJvDG0 条件付き書式とかは?
133デフォルトの名無しさん (オッペケ Sr23-aBdg)
2020/07/02(木) 02:34:51.75ID:G8g1bCvWr134デフォルトの名無しさん (ワッチョイ 27ea-c9XW)
2020/07/02(木) 04:05:38.32ID:vmiMC9VK0 教えてください。
imagemsoの名称からfaceidに変換することは可能でしょうか?
もしくはmsoBarPopupでimagemsoを使用することは可能でしょうか?
imagemsoの名称からfaceidに変換することは可能でしょうか?
もしくはmsoBarPopupでimagemsoを使用することは可能でしょうか?
135デフォルトの名無しさん (ワッチョイ 27ce-BXkI)
2020/07/02(木) 06:28:30.74ID:PEAIWqln0 >>133
選んだセルをどうしたいかによるけど、オートフィルかけて選択とか
選んだセルをどうしたいかによるけど、オートフィルかけて選択とか
136デフォルトの名無しさん (アウアウエー Sa82-qC4h)
2020/07/02(木) 08:20:19.52ID:yX39WODNa 他人の作ったコードはなぜ読む気がしないのか
137デフォルトの名無しさん (アウアウウー Sacf-z1wt)
2020/07/02(木) 10:30:47.89ID:KAImZ3Owa 読む必要はないからな
138デフォルトの名無しさん (ワッチョイ 1e8e-0gyK)
2020/07/02(木) 12:31:17.08ID:cWLbwDw40 馬鹿の特徴
「教えて」「助けて」
で始まる書き込みをする
「教えて」「助けて」
で始まる書き込みをする
139デフォルトの名無しさん (ワッチョイ 27ea-c9XW)
2020/07/02(木) 13:06:37.09ID:vmiMC9VK0140デフォルトの名無しさん (アウアウウー Sacf-z1wt)
2020/07/02(木) 15:30:35.30ID:NxUusdo6a そんなものはない
141デフォルトの名無しさん (ワッチョイ 8aea-Qwhy)
2020/07/02(木) 16:07:39.62ID:fLeksvw30 >>140
ありがとうごさいました。参考になります。
ありがとうごさいました。参考になります。
142デフォルトの名無しさん (ワッチョイ 6bda-BXkI)
2020/07/02(木) 16:13:40.59ID:pSHiLlcA0 馬鹿の特徴
人にマウントしたがるだけで
質問への答えは出さない
人にマウントしたがるだけで
質問への答えは出さない
143デフォルトの名無しさん (ワッチョイ 5301-v7i8)
2020/07/02(木) 17:04:38.40ID:2Xt/GnSW0144デフォルトの名無しさん (ワッチョイ 0a42-QTdV)
2020/07/02(木) 17:44:48.44ID:Q59tEF0c0 そんなものはない
145デフォルトの名無しさん (アウアウエー Sa82-h0J+)
2020/07/02(木) 17:45:12.17ID:q3lU8bAMa そんなひとはいない
146デフォルトの名無しさん (ワントンキン MMfa-MOKw)
2020/07/02(木) 21:22:15.18ID:sbstkRF+M 馬鹿には馬鹿と指摘しないと、あまりに低レベルの自分でやってみようという意志もない馬鹿な質問で溢れかえるからこれくらいでいい
147デフォルトの名無しさん (ワッチョイ 5301-v7i8)
2020/07/02(木) 21:49:51.56ID:2Xt/GnSW0148デフォルトの名無しさん (ワッチョイ 0b09-ERT+)
2020/07/02(木) 22:51:02.52ID:7/3Aifl90 ここが上級者ばかり集う高尚なスレだと思っているのかWWWWWWWWWWWW
VBAごときでWWWWWWWWWw
VBAごときでWWWWWWWWWw
149デフォルトの名無しさん (ワッチョイ deda-VQSO)
2020/07/02(木) 23:33:21.68ID:0km7hKfU0 VBAを随分下に見てるねえ。
別にC#で回答してもいいよ?
VBAに脳内変換するから。
別にC#で回答してもいいよ?
VBAに脳内変換するから。
150デフォルトの名無しさん (ワッチョイ 87da-VQSO)
2020/07/02(木) 23:47:09.16ID:Y/spJvDG0 上級者も馬鹿も両方いてあたりまえ
お前らそんなにマウントとりたいのかw
お前らそんなにマウントとりたいのかw
151デフォルトの名無しさん (ワッチョイ bb80-Rur7)
2020/07/02(木) 23:59:32.57ID:yXnL3NZ/0 誰か教えて。
式に=とか+を使うと字が読みにくくて困っています。
全角文字や絵文字を使うことはできないのでしょうか?
急いでいますからすぐに教えて、
式に=とか+を使うと字が読みにくくて困っています。
全角文字や絵文字を使うことはできないのでしょうか?
急いでいますからすぐに教えて、
152 テトリス ◆SYKnw8OJpw
2020/07/03(金) 00:10:57.30 テスト
153デフォルトの名無しさん (ワッチョイ deda-VQSO)
2020/07/03(金) 00:14:47.41ID:P5PHrlsB0154デフォルトの名無しさん (ワッチョイ 8aef-VQSO)
2020/07/03(金) 04:04:14.78ID:B7qpVotz0 Function 〓(ByRef a, ByVal b) : a = b : End Function
Function ┼(ByVal b, ByVal c) : 〓 ┼, WorksheetFunction.Sum(b, c) :End Function
これを入れておけば、=とか+から解放されるぞ
Sub test()
Dim a
〓 a, 1
Debug.Print ┼(a, 1)
End Sub
Function ┼(ByVal b, ByVal c) : 〓 ┼, WorksheetFunction.Sum(b, c) :End Function
これを入れておけば、=とか+から解放されるぞ
Sub test()
Dim a
〓 a, 1
Debug.Print ┼(a, 1)
End Sub
155デフォルトの名無しさん (ワッチョイ 0a2f-+ZV3)
2020/07/03(金) 12:58:30.06ID:KESc8IU30 そんなソース絶対読みたくないな
読みやすいフォント探すか自作すればいいだけだろうに
読みやすいフォント探すか自作すればいいだけだろうに
156デフォルトの名無しさん (アウアウウー Sacf-z1wt)
2020/07/03(金) 13:30:11.45ID:hUamHkOVa ハズキルーペ使えよw
157デフォルトの名無しさん (ワッチョイ 87cc-ERT+)
2020/07/03(金) 21:14:38.38ID:mplhmvvw0 ワークシートの条件にあう行を削除して上に詰めるみたいなことを、配列内でしたいです。
多次元配列"ary"内の1列目が66か、6列が1000か、28列目が空欄のレコードを削除するコードを教えてください
多次元配列"ary"内の1列目が66か、6列が1000か、28列目が空欄のレコードを削除するコードを教えてください
158デフォルトの名無しさん (ワッチョイ 8ab5-5DWS)
2020/07/03(金) 21:23:34.89ID:Mxid+JS90 E列が空白になるまでE列とG〜M列に特定の処理をしたくて
Do loopを使って何とかできないかと悩んでたけど座礁しますた
Eの11行目を起点にして
E列の数値が正の数ならEもG〜Mも数値はそのまま
E列の数値が0ならEもG〜Mも数値はそのまま
Eの数値が負の数ならEとG〜Mの数値を-*1
と反転させたい
ってのは素人には荷が重すぎですかね?
Do loopを使って何とかできないかと悩んでたけど座礁しますた
Eの11行目を起点にして
E列の数値が正の数ならEもG〜Mも数値はそのまま
E列の数値が0ならEもG〜Mも数値はそのまま
Eの数値が負の数ならEとG〜Mの数値を-*1
と反転させたい
ってのは素人には荷が重すぎですかね?
159デフォルトの名無しさん (ワッチョイ 1bac-OmMV)
2020/07/03(金) 21:31:07.37ID:DQKehNsV0 157,188
お互いに相手のコード相談しながら考えてあげればいいんじゃね
ちょうどよさげだわレベル
お互いに相手のコード相談しながら考えてあげればいいんじゃね
ちょうどよさげだわレベル
160デフォルトの名無しさん (ワッチョイ 27ce-BXkI)
2020/07/03(金) 21:44:24.02ID:4NyCV/dB0 >>158
いいえ、がんばればできます
いいえ、がんばればできます
161デフォルトの名無しさん (ワッチョイ 27ce-BXkI)
2020/07/03(金) 21:55:13.66ID:4NyCV/dB0 Sub Macro1()
r = 11 '起点の行
Do While Cells(r, "E") <> ""
If Cells(r, "E") < 0 Then
Cells(r, "E") = -Cells(r, "E")
For c = Asc("G") To Asc("M")
Cells(r, Ch r(c)) = -Cells(r, Ch r(c))
Next c
End If
r = r + 1
Loop
End Sub
r = 11 '起点の行
Do While Cells(r, "E") <> ""
If Cells(r, "E") < 0 Then
Cells(r, "E") = -Cells(r, "E")
For c = Asc("G") To Asc("M")
Cells(r, Ch r(c)) = -Cells(r, Ch r(c))
Next c
End If
r = r + 1
Loop
End Sub
162デフォルトの名無しさん (ワッチョイ 87da-VQSO)
2020/07/03(金) 22:17:41.55ID:aUU6z7Ir0 そもそもマクロ作るのって違うデータでも同じ処理をやりたいような場合じゃないのか
一回限りのデータ抽出ならわざわざマクロなんか作る意味ないんだけどな
無駄に時間を浪費したいのかな
一回限りのデータ抽出ならわざわざマクロなんか作る意味ないんだけどな
無駄に時間を浪費したいのかな
163デフォルトの名無しさん (ワッチョイ a392-LTdq)
2020/07/03(金) 22:37:42.83ID:qSqs6yG50 使い捨てマクロってのもありまして
164デフォルトの名無しさん (ワッチョイ 6bda-ewff)
2020/07/03(金) 22:48:22.59ID:3J4wGhdX0 定型フォーマットの複数ファイルの同項目の値を集計したい
なんて時は使い捨てマクロかな
なんて時は使い捨てマクロかな
165デフォルトの名無しさん (ワッチョイ 0a2f-+ZV3)
2020/07/03(金) 23:04:06.95ID:KESc8IU30166デフォルトの名無しさん (ワッチョイ 0a2f-+ZV3)
2020/07/03(金) 23:06:05.89ID:KESc8IU30167デフォルトの名無しさん (ワッチョイ 8ab5-5DWS)
2020/07/03(金) 23:26:37.07ID:Mxid+JS90168デフォルトの名無しさん (アウアウエー Sa82-h0J+)
2020/07/03(金) 23:27:55.78ID:8QUz9sdRa 確かに一回限りの作業なら
マクロ考えているよりやった方が終わってるかもな
マクロ考えているよりやった方が終わってるかもな
169デフォルトの名無しさん (ワッチョイ deda-VQSO)
2020/07/03(金) 23:35:20.76ID:P5PHrlsB0 >>157
配列内でやるならレコードセットだな。
配列内でやるならレコードセットだな。
170デフォルトの名無しさん (ワッチョイ 46f7-5RIT)
2020/07/03(金) 23:42:57.67ID:9EQo/V7m0 一回きりだろうと同じ処理100回やるようなのもあるんだし
171デフォルトの名無しさん (ワッチョイ deda-VQSO)
2020/07/03(金) 23:46:08.59ID:P5PHrlsB0 1回限りでも3行くらいで済むのは書くな。
172デフォルトの名無しさん (ワッチョイ bb1d-+upQ)
2020/07/04(土) 00:48:12.93ID:KIBH4SNT0 まだ22歳の学生社長が得た、23億円の「使い道」
あの橋本環奈をCMに使うバイトアプリの雄
https://toyokeizai.net/articles/-/319511
中学時代の車いす生活から、17歳で起業するまで
https://www.advertimes.com/20200130/article306925/
ミャンマー発 AIダイニングアプリ「Yathar」をしかける日本人起業家
https://roboteer-tokyo.com/archives/14840
自分の視野は「世の中の0.001%」と自覚せよ。ビジネスチャンスを掴む4つの習慣
https://headlines.yahoo.co.jp/hl?a=20200511-00010001-srnijugo-life
アプリの視聴率がわかる 高専卒起業家の独創力
https://www.nikkei.com/article/DGXMZO46695580Y9A620C1000000/
1万人の若者を支援!インターンが日本を変えるかも!? glowshipの若き創業者・足立卓也氏インタビュー
https://sogyotecho.jp/glowship-adachi-interview/
大学生起業家が設立1年で20億円調達! 単発バイトアプリに外食企業など出資【タイミー】
https://foodfun.jp/archives/3490
あの橋本環奈をCMに使うバイトアプリの雄
https://toyokeizai.net/articles/-/319511
中学時代の車いす生活から、17歳で起業するまで
https://www.advertimes.com/20200130/article306925/
ミャンマー発 AIダイニングアプリ「Yathar」をしかける日本人起業家
https://roboteer-tokyo.com/archives/14840
自分の視野は「世の中の0.001%」と自覚せよ。ビジネスチャンスを掴む4つの習慣
https://headlines.yahoo.co.jp/hl?a=20200511-00010001-srnijugo-life
アプリの視聴率がわかる 高専卒起業家の独創力
https://www.nikkei.com/article/DGXMZO46695580Y9A620C1000000/
1万人の若者を支援!インターンが日本を変えるかも!? glowshipの若き創業者・足立卓也氏インタビュー
https://sogyotecho.jp/glowship-adachi-interview/
大学生起業家が設立1年で20億円調達! 単発バイトアプリに外食企業など出資【タイミー】
https://foodfun.jp/archives/3490
173デフォルトの名無しさん (ワッチョイ a392-LTdq)
2020/07/04(土) 01:40:09.94ID:IOVEPry/0 一般論としては頻度の多い作業の方が自動化に向いてるのは確かだけど、
1回だけでも大量のデータを加工したり手作業でやるには時間のかかる作業もあり、
作業時間の方がコード書く時間より長くなる場合も多々もあるのでケースバイケースやね
1回だけでも大量のデータを加工したり手作業でやるには時間のかかる作業もあり、
作業時間の方がコード書く時間より長くなる場合も多々もあるのでケースバイケースやね
174デフォルトの名無しさん (ワッチョイ 5301-JCxG)
2020/07/04(土) 01:58:21.07ID:42LT/T3f0 逆に、山田やっとけ、というのはどうよ?
175デフォルトの名無しさん (ワッチョイ 87da-VQSO)
2020/07/04(土) 02:07:27.87ID:VMWug14q0 やるとは何を?
176デフォルトの名無しさん (ワッチョイ 5301-JCxG)
2020/07/04(土) 02:09:15.54ID:42LT/T3f0 データの加工。
177デフォルトの名無しさん (ワッチョイ 87da-VQSO)
2020/07/04(土) 02:10:42.23ID:VMWug14q0 加工すればいいんじゃね
178デフォルトの名無しさん (ワッチョイ 5301-JCxG)
2020/07/04(土) 02:13:10.44ID:42LT/T3f0 いや、山田がやってくれないかなって。
だめ?
だめ?
179デフォルトの名無しさん (ワッチョイ 87da-VQSO)
2020/07/04(土) 02:16:03.66ID:VMWug14q0 だから山田がデータを加工すればいいんじゃね
180デフォルトの名無しさん (ワッチョイ 87da-VQSO)
2020/07/04(土) 02:38:36.13ID:VMWug14q0 素人にやらせた場合間違った結果を出すかもしれんが
その場合頼んだ側にも責任があるけどそれでも山田にやらせるか?
その場合頼んだ側にも責任があるけどそれでも山田にやらせるか?
181デフォルトの名無しさん (ワッチョイ 5301-JCxG)
2020/07/04(土) 03:10:27.15ID:42LT/T3f0 田中のほうが良いかな?
182デフォルトの名無しさん (アウアウエー Sa82-h0J+)
2020/07/04(土) 03:37:53.50ID:OxpkXjjxa 斎藤さんだぞ
183デフォルトの名無しさん (ワッチョイ 8a01-21HI)
2020/07/04(土) 04:04:04.69ID:IjVZd7O90 山田ができるのは座布団運びだけだろ
184デフォルトの名無しさん (ワッチョイ 8a01-5cl0)
2020/07/04(土) 07:02:36.51ID:VZt6Ms3K0 do whileとかほとんど使わないわ
あれ試行錯誤してる最中に脱出条件間違えて固まるとイライラってするんで
>>158こういうのは
途中で空白行挟んでたらどうすんのとか考えるとEnd(xlup)とか使って無難にforで回したい
最も空白行挟んでたらそこまでしか処理しないのかもしれんけど
それなら上から順に一旦回して空白行がどこに出るのか調べてからやるわ
全データ配列に格納してからやれば速度的にも問題ないと思うし
あれ試行錯誤してる最中に脱出条件間違えて固まるとイライラってするんで
>>158こういうのは
途中で空白行挟んでたらどうすんのとか考えるとEnd(xlup)とか使って無難にforで回したい
最も空白行挟んでたらそこまでしか処理しないのかもしれんけど
それなら上から順に一旦回して空白行がどこに出るのか調べてからやるわ
全データ配列に格納してからやれば速度的にも問題ないと思うし
185デフォルトの名無しさん (スップ Sdaa-tYaB)
2020/07/04(土) 07:59:26.14ID:yagtSNgld 観測地点が全国で2000ヶ所、1時間毎の観測結果3年分のデータがあって、8時間毎に観測出来なかった場合も踏まえて平均し、観測出来なかったのが8時間の内4時間以上あったら平均値も出力出来なかったとする。
で、その8時間の平均値は1時間ずつずれて24個分で1日のデ―タとなるんだが、それをさらに平均して1日の値とする
なんてのやったが1回限りでもVBA使わないと無理。
というか普通に考えてVBAでも無理だけどね。
で、その8時間の平均値は1時間ずつずれて24個分で1日のデ―タとなるんだが、それをさらに平均して1日の値とする
なんてのやったが1回限りでもVBA使わないと無理。
というか普通に考えてVBAでも無理だけどね。
186デフォルトの名無しさん (ワッチョイ 2780-2vUA)
2020/07/04(土) 09:41:06.65ID:htrp3xgD0 >>157
配列に入れたら順番に書き込んで条件の時だけ書き込みスキップじゃ駄目なの?
配列に入れたら順番に書き込んで条件の時だけ書き込みスキップじゃ駄目なの?
187デフォルトの名無しさん (ワッチョイ 1e8e-0gyK)
2020/07/04(土) 10:01:18.86ID:1naoKVTK0 >>185
お前の低い知能の頭ではできないだけだろ
お前の低い知能の頭ではできないだけだろ
188デフォルトの名無しさん (ワッチョイ 8a01-5cl0)
2020/07/04(土) 11:47:27.20ID:VZt6Ms3K0 簡単だよな
セルにどういう風にデータが並んでるかで多少の工夫がいるかもしれんけど
加減乗除のみのワンパターン
セルにどういう風にデータが並んでるかで多少の工夫がいるかもしれんけど
加減乗除のみのワンパターン
189デフォルトの名無しさん (ワッチョイ bf20-JOTr)
2020/07/04(土) 12:11:54.32ID:xB5SKVkx0 水口克也氏のExcelVBA入門講座って本を使ったことある人いますか?
最後のじゃんけんゲームを作る所が、どうしてもうまくいきません
最後のじゃんけんゲームを作る所が、どうしてもうまくいきません
190デフォルトの名無しさん (ドコグロ MM33-21HI)
2020/07/04(土) 12:23:35.41ID:KlM0EefbM191デフォルトの名無しさん (ワッチョイ bbda-fHqu)
2020/07/04(土) 12:37:06.40ID:/jHrZd8o0 8時間平均から24時間平均への変換は一般的なLPF処理だな
デジタル信号処理で数値データを扱う基本的な考え方だよ
デジタル信号処理で数値データを扱う基本的な考え方だよ
192デフォルトの名無しさん (ワッチョイ 8a01-5cl0)
2020/07/04(土) 13:05:03.59ID:VZt6Ms3K0 >>157
全要素forで回しながら
条件合うものだけを新しい配列newArrayにいれていけばいいじゃん
その後新しい配列から、データ空にしたシートに記入
新しい配列の要素数、特に1次元要素数(行数)だけど
Redim Preserveで順次増やしていくのはこの場合できないから、
一旦行数を確定するためだけにfor回してカウント
要素数確定したnewArray作ってから
もう一度for回して入れていけばいい
行列逆転させればredim preserve使って一発でもいけるか
特に巨大なデータでなければ間違い避けるために二回まわすなおれなら
行削除によって表自体の体裁を上に詰めていきたいっていうなら
最初にforを回した後、元の行数とnewArrayの行数の差だけ表の行を削除
データはすでに配列にとってあるんだからどこから削除しても構わない
全要素forで回しながら
条件合うものだけを新しい配列newArrayにいれていけばいいじゃん
その後新しい配列から、データ空にしたシートに記入
新しい配列の要素数、特に1次元要素数(行数)だけど
Redim Preserveで順次増やしていくのはこの場合できないから、
一旦行数を確定するためだけにfor回してカウント
要素数確定したnewArray作ってから
もう一度for回して入れていけばいい
行列逆転させればredim preserve使って一発でもいけるか
特に巨大なデータでなければ間違い避けるために二回まわすなおれなら
行削除によって表自体の体裁を上に詰めていきたいっていうなら
最初にforを回した後、元の行数とnewArrayの行数の差だけ表の行を削除
データはすでに配列にとってあるんだからどこから削除しても構わない
193デフォルトの名無しさん (ワッチョイ 8a01-21HI)
2020/07/04(土) 13:32:13.54ID:IjVZd7O90 >>191
それ一気に24時間平均でよくね?
それ一気に24時間平均でよくね?
194デフォルトの名無しさん (ワッチョイ bbda-fHqu)
2020/07/04(土) 13:43:57.26ID:/jHrZd8o0 いきなりデータ粒度を荒くするのは悪手
ましてや>>185の場合はじめに欠損データのノイズキャンセルも行っているのでまとめて行なうとデータの精度が低下する
ましてや>>185の場合はじめに欠損データのノイズキャンセルも行っているのでまとめて行なうとデータの精度が低下する
195デフォルトの名無しさん (アウアウエー Sa82-h0J+)
2020/07/04(土) 14:05:30.25ID:Em2AcreDa 24コマを1コマにするんだから
平らに均すのに精度もクソも無い気がする
平らに均すのに精度もクソも無い気がする
196デフォルトの名無しさん (ワッチョイ bbda-fHqu)
2020/07/04(土) 14:21:18.07ID:/jHrZd8o0 データ値の定常状態と過渡状態を理解していれば分かる
粒度が荒いと応答性が悪化するので現象の追従が遅れる
安定時のデータ値だけならともかくデータの変化を取りこぼすリスクが高くなるんだよ
粒度が荒いと応答性が悪化するので現象の追従が遅れる
安定時のデータ値だけならともかくデータの変化を取りこぼすリスクが高くなるんだよ
197デフォルトの名無しさん (アウアウエー Sa82-h0J+)
2020/07/04(土) 14:31:13.19ID:Em2AcreDa >>196
そりはモニタのアッパーとローワーにトリガー仕込んだら良い話ではないのでしゅか?
そりはモニタのアッパーとローワーにトリガー仕込んだら良い話ではないのでしゅか?
198デフォルトの名無しさん (ワッチョイ bbda-fHqu)
2020/07/04(土) 14:44:04.22ID:/jHrZd8o0 上限、下限決め打ちの場合はトリガ仕込むのでも通用はする
ただ一日当たりの変化量でアクション起こす場合はどうする?
移動差分(微分)を連続的にデータ処理しないと難しい
ただ一日当たりの変化量でアクション起こす場合はどうする?
移動差分(微分)を連続的にデータ処理しないと難しい
199デフォルトの名無しさん (アウアウエー Sa82-qC4h)
2020/07/04(土) 14:48:04.16ID:ZiXQ0AsVa 喧嘩はやめよう
200157 (ワッチョイ 87cc-ERT+)
2020/07/04(土) 14:58:18.35ID:oup49XFx0 >>186
仮の配列を作り、編集してaryに入れるようにしたいのですが
これだと、全て空欄になってしまいます
Dim i As Long, j As Long, cnt As Long, cnt2 As Long
i = Cells(Rows.Count, 1).End(xlUp).Row
'仮の配列
ReDim Kariary(i, 30) As Variant
Kariary = Range("A2:AD" & i).Value
'最終的に代入する配列
ReDim ary(i - 1, 30) As Variant
For cnt = 1 To i - 1
If Not Kariary(cnt, 1) = 66 Or _
Kariary(cnt, 6) = 1000 Or _
Kariary(cnt, 28) = "" Then
j = UBound(ary) + 1
If j < i - 1 Then
For cnt2 = 1 To 30
ReDim Preserve ary(j, 30) As Variant
ary(j, cnt2) = Kariary(cnt, cnt2)
Next cnt2
End If
End If
Next cnt
'シートを一旦クリア
Cells.Clear
Range("A2:AD" & i) = ary
仮の配列を作り、編集してaryに入れるようにしたいのですが
これだと、全て空欄になってしまいます
Dim i As Long, j As Long, cnt As Long, cnt2 As Long
i = Cells(Rows.Count, 1).End(xlUp).Row
'仮の配列
ReDim Kariary(i, 30) As Variant
Kariary = Range("A2:AD" & i).Value
'最終的に代入する配列
ReDim ary(i - 1, 30) As Variant
For cnt = 1 To i - 1
If Not Kariary(cnt, 1) = 66 Or _
Kariary(cnt, 6) = 1000 Or _
Kariary(cnt, 28) = "" Then
j = UBound(ary) + 1
If j < i - 1 Then
For cnt2 = 1 To 30
ReDim Preserve ary(j, 30) As Variant
ary(j, cnt2) = Kariary(cnt, cnt2)
Next cnt2
End If
End If
Next cnt
'シートを一旦クリア
Cells.Clear
Range("A2:AD" & i) = ary
201デフォルトの名無しさん (オッペケ Sr23-OmMV)
2020/07/04(土) 15:04:44.69ID:xhESn47nr はい
202デフォルトの名無しさん (アウアウエー Sa82-h0J+)
2020/07/04(土) 15:22:36.21ID:ZKMg5qK7a203デフォルトの名無しさん (ワッチョイ 8a01-5cl0)
2020/07/04(土) 15:31:40.93ID:VZt6Ms3K0 >>200
頭が痛くなってくるんだけど
まずifの条件がおかしい
自分で簡単の作って確かめてみ
こういうの
思ってるような動きするか確かめてみ
プログラムってのはそういうことしないとだめだわ
まっさらなxlsm作ってデータも簡単のシートに作ってやってみ
そうすりゃすぐ分かる
Sub teeee()
With ActiveSheet
If Not .Cells(1, 1) = 66 Or .Cells(2, 1) = 2 Then
MsgBox "ok"
End If
End With
End Sub
例えばさ、
ary(j, cnt2) = Kariary(cnt, cnt2)
これにブレークポイントつけてここに到達するケースがあるか調べてみ
それだけで何か分かるわ
まぁだれか正解のコード書いちゃうんだろうけど
デバッグ
ブレークポイント
これ使えないとまともなコード書けないぞ
頭が痛くなってくるんだけど
まずifの条件がおかしい
自分で簡単の作って確かめてみ
こういうの
思ってるような動きするか確かめてみ
プログラムってのはそういうことしないとだめだわ
まっさらなxlsm作ってデータも簡単のシートに作ってやってみ
そうすりゃすぐ分かる
Sub teeee()
With ActiveSheet
If Not .Cells(1, 1) = 66 Or .Cells(2, 1) = 2 Then
MsgBox "ok"
End If
End With
End Sub
例えばさ、
ary(j, cnt2) = Kariary(cnt, cnt2)
これにブレークポイントつけてここに到達するケースがあるか調べてみ
それだけで何か分かるわ
まぁだれか正解のコード書いちゃうんだろうけど
デバッグ
ブレークポイント
これ使えないとまともなコード書けないぞ
204デフォルトの名無しさん (ワッチョイ 8a01-5cl0)
2020/07/04(土) 15:38:09.49ID:VZt6Ms3K0 それだけじゃないからな
redim preserve は、くせ者
redim preserve は、くせ者
205デフォルトの名無しさん (ワッチョイ 4602-JJ0U)
2020/07/04(土) 15:42:33.80ID:RSp2d2NT0 redimしなくても十分な量確保しといてどこまで使ったか変数に入れときゃいいだけだろ
わざわざ負荷かかることする意味がない
わざわざ負荷かかることする意味がない
206デフォルトの名無しさん (アウアウエー Sa82-qC4h)
2020/07/04(土) 15:56:38.11ID:D9As6lACa プロはとりあえず配列に格納するのが好きなんです
207デフォルトの名無しさん (スプッッ Sd4a-tYaB)
2020/07/04(土) 16:03:39.61ID:DEQjmcqBd208デフォルトの名無しさん (スププ Sdaa-bNAA)
2020/07/04(土) 16:04:11.08ID:qCMIttGKd 十分な量を確保
あとで失敗するパターン
あとで失敗するパターン
209デフォルトの名無しさん (アウアウエー Sa82-h0J+)
2020/07/04(土) 16:09:00.53ID:MUUOvXMba data.csv
年月日,時間,気温,湿度
2020/07/04,11:15,28.5℃,78%
2020/07/04,12:15,ー,78%
2020/07/04,13:15,28.5℃,ー
2020/07/04,14:15,ー,ー
2020/07/04,15:15,28.5℃,78%
・・・
・・
・
1カ月データとして24時間×31日=744行+先頭行
1年12ヶ月データで8,928行かぁ
データスルーとかデータ穴埋めとかって
どっちの場合も
VBA じゃなくてデータベースのSQLで出来たりするのかな?
年月日,時間,気温,湿度
2020/07/04,11:15,28.5℃,78%
2020/07/04,12:15,ー,78%
2020/07/04,13:15,28.5℃,ー
2020/07/04,14:15,ー,ー
2020/07/04,15:15,28.5℃,78%
・・・
・・
・
1カ月データとして24時間×31日=744行+先頭行
1年12ヶ月データで8,928行かぁ
データスルーとかデータ穴埋めとかって
どっちの場合も
VBA じゃなくてデータベースのSQLで出来たりするのかな?
210デフォルトの名無しさん (ワッチョイ 1bac-OmMV)
2020/07/04(土) 16:22:41.23ID:DNEaiqy30 おれならそもそも案件をRDBMSに移す提案をするわ
だめなら元データはどうせCSVやJsonかなにかだろうし、VBAから普通にRDBにいれてプロシージャ叩くとか
外部プログラムで直に処理するね
元データがExcelでExcel縛りなら、どうやって案件から手を引くかを考えるねw
Excel起動するVBAでやることじゃない
まあ金次第でもあるけど
だめなら元データはどうせCSVやJsonかなにかだろうし、VBAから普通にRDBにいれてプロシージャ叩くとか
外部プログラムで直に処理するね
元データがExcelでExcel縛りなら、どうやって案件から手を引くかを考えるねw
Excel起動するVBAでやることじゃない
まあ金次第でもあるけど
211デフォルトの名無しさん (スプッッ Sd4a-tYaB)
2020/07/04(土) 16:30:22.62ID:DEQjmcqBd212デフォルトの名無しさん (スププ Sdaa-bNAA)
2020/07/04(土) 16:35:45.74ID:qCMIttGKd pythonでデータクリーニングさせれば?
213デフォルトの名無しさん (ワッチョイ 8a01-21HI)
2020/07/04(土) 16:42:21.08ID:IjVZd7O90214デフォルトの名無しさん (ワッチョイ 8a01-21HI)
2020/07/04(土) 16:47:20.12ID:IjVZd7O90215デフォルトの名無しさん (スプッッ Sd4a-tYaB)
2020/07/04(土) 17:02:54.82ID:DEQjmcqBd216デフォルトの名無しさん (アウアウウー Sacf-z1wt)
2020/07/04(土) 17:18:55.42ID:pfDbF4Mra どうせ適当なデータでっち上げて表示させても気づかないだろ
217200 (ワッチョイ 87cc-ERT+)
2020/07/04(土) 17:35:53.50ID:oup49XFx0218デフォルトの名無しさん (ワッチョイ 8e02-JJ0U)
2020/07/04(土) 17:46:55.47ID:aRnpDm0b0 5ちゃんのExcelVBA質問スレでMonaさんに対してマウントを取りたいのですが、
Mount Mona
と記述してもマウントが取れません
どうすればいいですか?
Mount Mona
と記述してもマウントが取れません
どうすればいいですか?
219デフォルトの名無しさん (ワッチョイ 1e8e-0gyK)
2020/07/04(土) 17:49:24.23ID:1naoKVTK0220デフォルトの名無しさん (ワッチョイ 87cc-ERT+)
2020/07/04(土) 17:54:43.71ID:oup49XFx0 A列の2行目以降に値あり、B列の2行目以降に同じ行のA列の値が
上から何回目に出現したかを返す関数として「=COUNTIF($A$1:A2,A2」を使っています。
同じことを配列で使用する方法を教えて下さい。
(A列の値は並び替えをしてあります)
Dim EndRow As Long, r As Long
EndRow = Cells(Rows.Count, 1).End(xlUp).Row
ReDim ary(EndRow, 2)
ary = Range("A2:B" & EndRow).Value
For r = 1 To EndRow - 1
ary(r, 2) = Application.WorksheetFunction.CountIf _
(Range(ary(1, 1), ary(r, 1)), ary(r, 1))
Next r
これだとRangeメソッドは失敗しましたになります。
上から何回目に出現したかを返す関数として「=COUNTIF($A$1:A2,A2」を使っています。
同じことを配列で使用する方法を教えて下さい。
(A列の値は並び替えをしてあります)
Dim EndRow As Long, r As Long
EndRow = Cells(Rows.Count, 1).End(xlUp).Row
ReDim ary(EndRow, 2)
ary = Range("A2:B" & EndRow).Value
For r = 1 To EndRow - 1
ary(r, 2) = Application.WorksheetFunction.CountIf _
(Range(ary(1, 1), ary(r, 1)), ary(r, 1))
Next r
これだとRangeメソッドは失敗しましたになります。
221デフォルトの名無しさん (スプッッ Sd4a-tYaB)
2020/07/04(土) 18:14:15.70ID:DEQjmcqBd222デフォルトの名無しさん (ワッチョイ 8a01-5cl0)
2020/07/04(土) 19:58:17.09ID:VZt6Ms3K0 >>185
批判したいとかそういうもんじゃないんだけど
わりと大きなデータ扱うことに興味があったんでどんなもんか実際やってみた
1カ所分しかやってないんだけど
csvから取得して平均値26280個をシート記入するまで1秒もかかってない感じ
一日ごとの平均は出してないけどこの分じゃそれほど差はないと思う
もしや取得時には配列で一括取得してても
シート記入時に配列使った一括記入してないんじゃ?
も少し情報提供すると
https://www.data.jma.go.jp/gmd/risk/obsdl/index.php#
ここから3年分時間別気温データを、1年ごとcsvにして三個ダウンロード
https://www.moug.net/tech/exvba/0060086.html
これと同じ感じでOpen使って取得
年ごとに必要な気温データのみ1次元配列に入れる
3つの配列を1つの配列にまとめる
平均値入れていく配列AveArrayを新しく作る(あえてString宣言)
あとはforで回しながら過去8時間分のデータを調べてデータない場合の個数を調べて
4つ以上ならAveArrayにN/Aを入れる
4つ未満なら8時間合計して、有効データ数で除算し、AveArrayに入れる
AveArrayを列数1の2次元配列にしてからシートに一括記入
なんかおれ間違ってる?
批判したいとかそういうもんじゃないんだけど
わりと大きなデータ扱うことに興味があったんでどんなもんか実際やってみた
1カ所分しかやってないんだけど
csvから取得して平均値26280個をシート記入するまで1秒もかかってない感じ
一日ごとの平均は出してないけどこの分じゃそれほど差はないと思う
もしや取得時には配列で一括取得してても
シート記入時に配列使った一括記入してないんじゃ?
も少し情報提供すると
https://www.data.jma.go.jp/gmd/risk/obsdl/index.php#
ここから3年分時間別気温データを、1年ごとcsvにして三個ダウンロード
https://www.moug.net/tech/exvba/0060086.html
これと同じ感じでOpen使って取得
年ごとに必要な気温データのみ1次元配列に入れる
3つの配列を1つの配列にまとめる
平均値入れていく配列AveArrayを新しく作る(あえてString宣言)
あとはforで回しながら過去8時間分のデータを調べてデータない場合の個数を調べて
4つ以上ならAveArrayにN/Aを入れる
4つ未満なら8時間合計して、有効データ数で除算し、AveArrayに入れる
AveArrayを列数1の2次元配列にしてからシートに一括記入
なんかおれ間違ってる?
223デフォルトの名無しさん (アウアウエー Sa82-qC4h)
2020/07/04(土) 20:07:02.00ID:ZiXQ0AsVa こうやって実際にやってみる人は素晴らしいと思う
224デフォルトの名無しさん (ワッチョイ 46f7-5RIT)
2020/07/04(土) 20:15:53.04ID:/OqMGH1W0225デフォルトの名無しさん (アウアウウー Sacf-ewff)
2020/07/04(土) 20:17:12.12ID:JHoncA5/a countifじゃなくてloopでfindにすればよいのでは
226デフォルトの名無しさん (ワッチョイ 87da-VQSO)
2020/07/04(土) 22:27:57.95ID:VMWug14q0 VBAは手段の一つ、目的はデータの加工ってわりきればすぐ終わる作業なのに
無理してVBAだけでやろうとするからいつまでもおわらない
無理してVBAだけでやろうとするからいつまでもおわらない
227デフォルトの名無しさん (スプッッ Sd4a-tYaB)
2020/07/04(土) 23:58:08.33ID:DEQjmcqBd >>222
ちょっと見た感じほぼ、俺と同じ感じだね。
>もしや取得時には配列で一括取得してても
シート記入時に配列使った一括記入してないんじゃ?
オイオイ、そんな素人なわけ無いだろ。
Line inputを使ったか、それより速いバイナリ読み込み+StrConv使ったかについては覚えて居ない。
まあ、速いといっても劇的に速くなる訳じゃないから、そんなことよりマルチプロセスってことでLine inputのままだったかも。
オレがやった時のデータは日付+24列のデータだった。
貼り付けは元データ込みで、元データの右に8時間平均と1日平均書いたと思うが、もしかしたら8時間平均は出力しなかったかも。
多分読み込みよりも列を増やした二次元配列にして書き込みにも利用してたと思う。
ちょっと見た感じほぼ、俺と同じ感じだね。
>もしや取得時には配列で一括取得してても
シート記入時に配列使った一括記入してないんじゃ?
オイオイ、そんな素人なわけ無いだろ。
Line inputを使ったか、それより速いバイナリ読み込み+StrConv使ったかについては覚えて居ない。
まあ、速いといっても劇的に速くなる訳じゃないから、そんなことよりマルチプロセスってことでLine inputのままだったかも。
オレがやった時のデータは日付+24列のデータだった。
貼り付けは元データ込みで、元データの右に8時間平均と1日平均書いたと思うが、もしかしたら8時間平均は出力しなかったかも。
多分読み込みよりも列を増やした二次元配列にして書き込みにも利用してたと思う。
228デフォルトの名無しさん (スップ Sd4a-aBdg)
2020/07/05(日) 00:48:44.07ID:poq4gvQsd 複数のファイルの名前を編集したい
具体的には、全てのファイルのファイル名に、2020と入れたい。
具体的には、全てのファイルのファイル名に、2020と入れたい。
229デフォルトの名無しさん (ワッチョイ 87da-VQSO)
2020/07/05(日) 00:51:15.79ID:C4Jqu0Op0 DOSコマンドでできる
230デフォルトの名無しさん (ワッチョイ 27ce-BXkI)
2020/07/05(日) 01:49:00.12ID:UMxIfgnY0 >>228
ファイル名のどこに入れるの?先頭?真ん中?末尾?
ファイル名のどこに入れるの?先頭?真ん中?末尾?
231デフォルトの名無しさん (ワッチョイ bfe6-s8sF)
2020/07/05(日) 01:59:51.75ID:S3+IlzuQ0232デフォルトの名無しさん (ワッチョイ 1e8e-0gyK)
2020/07/05(日) 02:04:39.40ID:sCEs+yW00233デフォルトの名無しさん (ワッチョイ 46f7-5RIT)
2020/07/05(日) 03:08:45.12ID:EDU6Wt820 powershellでやれ
234デフォルトの名無しさん (ワッチョイ 8a01-c9XW)
2020/07/05(日) 07:10:34.18ID:Mq9FuBzw0 標準モジュールに、
Sub 1()
・・・
・・・
End Sub
Sub 2()
・・・
・・・
End Sub
Sub 3()
・・・
・・・
End Sub
と、書いていき、Sub 1()がSub 2()を呼び、Sub 2()がSub 3()を呼ぶ、って可能でしょうか?
Sub 1()
・・・
・・・
End Sub
Sub 2()
・・・
・・・
End Sub
Sub 3()
・・・
・・・
End Sub
と、書いていき、Sub 1()がSub 2()を呼び、Sub 2()がSub 3()を呼ぶ、って可能でしょうか?
235デフォルトの名無しさん (スプッッ Sd4a-tYaB)
2020/07/05(日) 07:16:23.84ID:2yUokYO9d236デフォルトの名無しさん (ワッチョイ 8a01-5cl0)
2020/07/05(日) 07:44:05.89ID:VaIdJVAp0 >>227
せっかくなんで
csvは日付+24列に加工してみた
1カ所の8時間ごと平均データ26280個を作って1列に貼り付けるfunctionを作る
引数は貼り付け先の列の列番号
これを
@1回だけ実行 A列のみに貼り付け
A100回実行 A列から右100列に1列ごと貼り付け
B200回実行 A列から右200列に1列ごと貼り付け
timer付けて一応測ってみた
@0.31秒
A32秒
B67秒
2000回だと12分ぐらいか?
CPU i5-4670
メモリ 24GB
Win7
実行時はPCでテレビ見ながらJane2個起動
firefox、Janetterなど20個以上のアプリが動いてる
環境やらデータの数値の大きさやらで
差は2000倍に拡大する可能性があるんで何とも言えない
うちの職場のしょぼいPCでやったらもっと酷いと思う
せっかくなんで
csvは日付+24列に加工してみた
1カ所の8時間ごと平均データ26280個を作って1列に貼り付けるfunctionを作る
引数は貼り付け先の列の列番号
これを
@1回だけ実行 A列のみに貼り付け
A100回実行 A列から右100列に1列ごと貼り付け
B200回実行 A列から右200列に1列ごと貼り付け
timer付けて一応測ってみた
@0.31秒
A32秒
B67秒
2000回だと12分ぐらいか?
CPU i5-4670
メモリ 24GB
Win7
実行時はPCでテレビ見ながらJane2個起動
firefox、Janetterなど20個以上のアプリが動いてる
環境やらデータの数値の大きさやらで
差は2000倍に拡大する可能性があるんで何とも言えない
うちの職場のしょぼいPCでやったらもっと酷いと思う
237234 (ワッチョイ 8a01-c9XW)
2020/07/05(日) 07:54:44.65ID:Mq9FuBzw0 >>234をグーグルで検索するには、どういうキーワードで検索すればいいでしょうか?
238デフォルトの名無しさん (ワッチョイ 872c-+ZV3)
2020/07/05(日) 07:57:11.74ID:R1IME3L+0 >>228
Ruby で作った。
ただし、DryRun なので実際には実行されません!
require 'fileutils'
# 絶対パスのディレクトリ名の後ろに、* を付けること!
# . で始まる、隠し directory, file を除く
glob_pattern = "C:/Users/Owner/Documents/*"
src_dir = File.dirname( glob_pattern ) # ディレクトリパスだけを取り出す
Dir.glob( glob_pattern )
.select { |full_path| File.file?( full_path ) } # ファイルのみ処理する
.each do |full_path| # 1つずつ処理する
dest_path = src_dir + "/" + "2020_" + File.basename( full_path ) # ファイル名
FileUtils::DryRun.move( full_path, dest_path )
end
# mv C:/Users/Owner/Documents/a.txt
# C:/Users/Owner/Documents/2020_a.txt
Ruby で作った。
ただし、DryRun なので実際には実行されません!
require 'fileutils'
# 絶対パスのディレクトリ名の後ろに、* を付けること!
# . で始まる、隠し directory, file を除く
glob_pattern = "C:/Users/Owner/Documents/*"
src_dir = File.dirname( glob_pattern ) # ディレクトリパスだけを取り出す
Dir.glob( glob_pattern )
.select { |full_path| File.file?( full_path ) } # ファイルのみ処理する
.each do |full_path| # 1つずつ処理する
dest_path = src_dir + "/" + "2020_" + File.basename( full_path ) # ファイル名
FileUtils::DryRun.move( full_path, dest_path )
end
# mv C:/Users/Owner/Documents/a.txt
# C:/Users/Owner/Documents/2020_a.txt
239234 (ワッチョイ 8a01-c9XW)
2020/07/05(日) 08:01:08.68ID:Mq9FuBzw0240デフォルトの名無しさん (ワッチョイ 8a01-5cl0)
2020/07/05(日) 08:01:41.62ID:VaIdJVAp0241デフォルトの名無しさん (アウアウエー Sa82-h0J+)
2020/07/05(日) 08:04:40.53ID:nDNnOTMWa >>234
普通に最後にサブルーチンの名前呼び出し書いたら良いのでは?
Sub 1()
・・・
・・・
2
End Sub
Sub 2()
・・・
・・・
3
End Sub
Sub 3()
・・・
・・・
End Sub
普通に最後にサブルーチンの名前呼び出し書いたら良いのでは?
Sub 1()
・・・
・・・
2
End Sub
Sub 2()
・・・
・・・
3
End Sub
Sub 3()
・・・
・・・
End Sub
242234 (ワッチョイ 8a01-c9XW)
2020/07/05(日) 08:05:40.42ID:Mq9FuBzw0 >>240
どうもです。
どうもです。
243234 (ワッチョイ 8a01-c9XW)
2020/07/05(日) 08:06:29.51ID:Mq9FuBzw0 >>241
どうもです。
どうもです。
244デフォルトの名無しさん (ワッチョイ 8f5f-ewff)
2020/07/05(日) 11:36:58.35ID:CJtrxhlB0 >>242
呼び出しは、可読性考慮すると文頭にCall書いた方がいいよ
呼び出しは、可読性考慮すると文頭にCall書いた方がいいよ
245デフォルトの名無しさん (ワッチョイ 0a2f-+ZV3)
2020/07/05(日) 13:58:43.83ID:U1BgWcwt0 >>207
VBAでやっても6時間はかかりすぎな気がするが
マシンスペックとコード晒してみ
それ、計算式でやって再計算に1時間以上かかるのか?
当然試してるよな
マルチプロセスもどうやってやったのか気になるが
俺なら間違いなくDBにつっこんでSQLでやる
そういえばエクセルシートなりCSVなりに対してSQL投げる方法がいくつかあったけど
それは試したのか?
VBAでやっても6時間はかかりすぎな気がするが
マシンスペックとコード晒してみ
それ、計算式でやって再計算に1時間以上かかるのか?
当然試してるよな
マルチプロセスもどうやってやったのか気になるが
俺なら間違いなくDBにつっこんでSQLでやる
そういえばエクセルシートなりCSVなりに対してSQL投げる方法がいくつかあったけど
それは試したのか?
246デフォルトの名無しさん (スプッッ Sd4a-tYaB)
2020/07/05(日) 15:07:25.29ID:2yUokYO9d247デフォルトの名無しさん (ワッチョイ 1bac-OmMV)
2020/07/05(日) 15:11:46.86ID:BTTSshKd0248デフォルトの名無しさん (スプッッ Sd4a-tYaB)
2020/07/05(日) 15:16:11.04ID:2yUokYO9d249デフォルトの名無しさん (スプッッ Sd4a-tYaB)
2020/07/05(日) 15:22:54.54ID:2yUokYO9d マルチプロセスはExcel.Application8個(自分含めて)呼び出して、自分のブック開いて別CPUにやらせるプロシージャをApplication.OnTimeで呼び出したかSetTimerで呼び出したかだったんじゃないかな。
細かい連携しないで済むようにしてたと思う。
複雑なことはやってねえよ。
細かい連携しないで済むようにしてたと思う。
複雑なことはやってねえよ。
250220 (ワッチョイ 87cc-ERT+)
2020/07/05(日) 19:59:50.06ID:Y6miK3VP0251デフォルトの名無しさん (スプッッ Sd4a-tYaB)
2020/07/05(日) 21:27:28.28ID:2yUokYO9d >>236
う〜ん、分からん。
俺もやってみたんだが、同じような時間だった。
観測値はテキ卜一に0〜100をランダムで書き込み。
観測出来なかった値は当時の記憶を頼りに9999とした。
確か9998もあったけど変わらんだろう。
前に書いた制約というかは、1年分のファイルが50〜60個ぐらいだったということ。
つまり県ごとのファイルで観測地が多い所は複数ファイルって感じ。
だから実際は行頭に観測地名が入って、その後に何かの数値とかが幾つかあって日付、観測値という具合だった。
年ごとのファイルが完全に固定フォーマットで無かったか、俺が信用してなかったか、観測値名で検索してたと思う。
そこから365日分は連続してたと思うけど。
それでも6時間は掛からんような気がしてきた。
もっと複雑なことやってたのかなあ。
どっちにしても後だしで申し訳ない。
う〜ん、分からん。
俺もやってみたんだが、同じような時間だった。
観測値はテキ卜一に0〜100をランダムで書き込み。
観測出来なかった値は当時の記憶を頼りに9999とした。
確か9998もあったけど変わらんだろう。
前に書いた制約というかは、1年分のファイルが50〜60個ぐらいだったということ。
つまり県ごとのファイルで観測地が多い所は複数ファイルって感じ。
だから実際は行頭に観測地名が入って、その後に何かの数値とかが幾つかあって日付、観測値という具合だった。
年ごとのファイルが完全に固定フォーマットで無かったか、俺が信用してなかったか、観測値名で検索してたと思う。
そこから365日分は連続してたと思うけど。
それでも6時間は掛からんような気がしてきた。
もっと複雑なことやってたのかなあ。
どっちにしても後だしで申し訳ない。
252デフォルトの名無しさん (ワッチョイ 8a01-21HI)
2020/07/05(日) 22:26:04.09ID:ys79fvH60253デフォルトの名無しさん (スプッッ Sd4a-tYaB)
2020/07/05(日) 22:29:31.22ID:2yUokYO9d254238 (ワッチョイ 872c-+ZV3)
2020/07/05(日) 22:43:00.48ID:R1IME3L+0 ファイル名の先頭に、2020_ を付けるぐらい、robocopy で出来ないのか?
255デフォルトの名無しさん (ワッチョイ 8a01-21HI)
2020/07/05(日) 22:49:17.55ID:ys79fvH60 2016ならよほど変なことをしてないと数時間とかかからんと思う
256デフォルトの名無しさん (ワッチョイ 87da-VQSO)
2020/07/05(日) 23:53:51.99ID:C4Jqu0Op0 2020_2020_2020_2020・・・・
257デフォルトの名無しさん (ワッチョイ ea24-bNAA)
2020/07/06(月) 00:43:25.66ID:Cn1gvhVh0 officeが32bitだったというオチは?
258デフォルトの名無しさん (オッペケ Sr23-aBdg)
2020/07/06(月) 06:39:12.08ID:NN5xIHVpr workbookとworksheetって何が違うか。
259デフォルトの名無しさん (ワッチョイ 8a01-21HI)
2020/07/06(月) 07:15:30.65ID:5mzvDM1u0 キングジムファイルと綴じられてる一覧表って感じかな
260デフォルトの名無しさん (ワッチョイ 27ce-BXkI)
2020/07/06(月) 08:12:33.04ID:XvhlV03D0 32bitと64bitで計算スピードの差は2倍もないような
261デフォルトの名無しさん (オッペケ Sr23-aBdg)
2020/07/06(月) 08:39:32.35ID:NN5xIHVpr Activesheet.cells(1.1).Activate
Activesheet.Paste
は上手くいくのに、
Activesheet.cells(1.1).Paste
は何でダメなんですか?
Activesheet.Paste
は上手くいくのに、
Activesheet.cells(1.1).Paste
は何でダメなんですか?
262デフォルトの名無しさん (ワッチョイ 8aea-Qwhy)
2020/07/06(月) 09:18:02.55ID:Ag715axD0 >>261
.pasteは、worsheetのメンバであってrangeやcellsのメンバじゃないから、かな?
.pasteは、worsheetのメンバであってrangeやcellsのメンバじゃないから、かな?
263デフォルトの名無しさん (ワッチョイ 8749-OmMV)
2020/07/06(月) 09:49:31.89ID:Smcv6rvz0 パラメータ Destinationがあるから
ワイはPasteSpecialのほうが好き
ワイはPasteSpecialのほうが好き
264デフォルトの名無しさん (スプッッ Sd4a-tYaB)
2020/07/06(月) 12:08:40.63ID:0NryXgvDd265デフォルトの名無しさん (ワッチョイ 87cc-ERT+)
2020/07/06(月) 18:39:32.80ID:XttWreH00 For
処理1
処理2
処理3
処理4
Next
よりも
For
処理1
Next
For
処理2
Next
For
処理3
Next
For
処理4
Next
の方が処理が早い傾向がありますが、そういうものですか?
処理1
処理2
処理3
処理4
Next
よりも
For
処理1
Next
For
処理2
Next
For
処理3
Next
For
処理4
Next
の方が処理が早い傾向がありますが、そういうものですか?
266デフォルトの名無しさん (ワッチョイ 3aba-/RNd)
2020/07/06(月) 19:08:39.04ID:tFUllOPh0267デフォルトの名無しさん (ワッチョイ 3aba-/RNd)
2020/07/06(月) 19:10:33.89ID:tFUllOPh0 てか、もうRubyは徒花だったな。
人気もダダ下がりだし。
人気もダダ下がりだし。
268デフォルトの名無しさん (スプッッ Sd4a-tYaB)
2020/07/06(月) 20:45:52.99ID:0NryXgvDd269デフォルトの名無しさん (ワッチョイ 0a2f-+ZV3)
2020/07/06(月) 20:59:38.60ID:aGu/2bZb0270デフォルトの名無しさん (ワッチョイ 3aba-/RNd)
2020/07/06(月) 21:12:06.08ID:tFUllOPh0 >>268
どこでもかしこでもRubyで書いて押し付けてきて、「出来だよ!」っていうオジサンがいるのよ。
WSHスレでは「Rubyおじさん」として有名だった。
が、自分よりスキルの上な奴がコードをうしたら黙り込む。
こんなところにまで出張いてるとはね…。
無視推奨。Rubyはオワコンだし。
どこでもかしこでもRubyで書いて押し付けてきて、「出来だよ!」っていうオジサンがいるのよ。
WSHスレでは「Rubyおじさん」として有名だった。
が、自分よりスキルの上な奴がコードをうしたら黙り込む。
こんなところにまで出張いてるとはね…。
無視推奨。Rubyはオワコンだし。
271デフォルトの名無しさん (アウアウエー Sa82-qC4h)
2020/07/06(月) 21:13:16.26ID:K1goXTAAa じゃあVBAはお爺ちゃんだろ
272デフォルトの名無しさん (ワッチョイ 3aba-/RNd)
2020/07/06(月) 21:17:13.18ID:tFUllOPh0 >>271
VBAは「頼れるジジイ」だろ。何言ってんの?
VBAは「頼れるジジイ」だろ。何言ってんの?
273デフォルトの名無しさん (ワッチョイ 27ce-BXkI)
2020/07/06(月) 21:29:12.52ID:XvhlV03D0274デフォルトの名無しさん (ワッチョイ 87da-VQSO)
2020/07/06(月) 22:27:45.01ID:33E9zFJO0 Rubyの話がしたければRubyのスレ行けばいいのにね
275デフォルトの名無しさん (スプッッ Sd4a-tYaB)
2020/07/07(火) 12:27:17.68ID:mk51G87Dd276デフォルトの名無しさん (ワッチョイ 87da-VQSO)
2020/07/07(火) 19:51:41.03ID:CAdbpiIn0 宣伝だろ
277デフォルトの名無しさん (ワッチョイ 8a01-c9XW)
2020/07/07(火) 20:15:33.65ID:2cf+0s2v0 音楽のmidiファイルを作りたい、つまりバイナリファイルを作りたい者です。で、
↓を試してみたいのですが、"C3"にバイナリの配列を書き込まなければいけません。
この場合、どうやってexcelのセルに、バイナリの配列データを書き込むのでしょうか?
https://oshiete.goo.ne.jp/qa/8402512.html
Sub test()
TEMP = Worksheets("Sheet1").Range("C3")
ReDim BIN(Len(TEMP) / 2 - 1) As Byte
For I = 1 To Len(TEMP) Step 2
BIN((I - 1) / 2) = Val("&H" & Mid(TEMP, I, 2))
Next I
Open "1.BIN" For Binary As #1
Put #1, , BIN
Close #1
End Sub
↓を試してみたいのですが、"C3"にバイナリの配列を書き込まなければいけません。
この場合、どうやってexcelのセルに、バイナリの配列データを書き込むのでしょうか?
https://oshiete.goo.ne.jp/qa/8402512.html
Sub test()
TEMP = Worksheets("Sheet1").Range("C3")
ReDim BIN(Len(TEMP) / 2 - 1) As Byte
For I = 1 To Len(TEMP) Step 2
BIN((I - 1) / 2) = Val("&H" & Mid(TEMP, I, 2))
Next I
Open "1.BIN" For Binary As #1
Put #1, , BIN
Close #1
End Sub
278デフォルトの名無しさん (ワッチョイ 1bac-OmMV)
2020/07/07(火) 20:25:40.74ID:BPFgnJg70 なんでVBAでやるの?
279デフォルトの名無しさん (ブーイモ MMef-aKnn)
2020/07/07(火) 20:27:13.84ID:z4TbLErcM VBAスレだから
280犬丸 ◆MRCYWQz4rc (ワッチョイ 8a01-c9XW)
2020/07/07(火) 20:31:41.96ID:2cf+0s2v0 >>278
和音の構成音(ドレミ・・・)を1つづつセルに入れられるから。
和音の構成音(ドレミ・・・)を1つづつセルに入れられるから。
281デフォルトの名無しさん (ワッチョイ 1bac-OmMV)
2020/07/07(火) 20:33:47.85ID:BPFgnJg70 なんでdominoとか使わないの?
282デフォルトの名無しさん (ワッチョイ 8a01-c9XW)
2020/07/07(火) 20:34:49.08ID:2cf+0s2v0 あと、PCにインストールされてる開発系はexcelだけだから。
283277 (ワッチョイ 8a01-c9XW)
2020/07/07(火) 20:41:28.24ID:2cf+0s2v0 つか、改変させたいmidiファイルが300個位あって、それの欲しいデータのexcelファイルへの読み込みはもう終わったわけ。
あとは、そのデータをちょい改変して、同様な300個のmidiファイルを吐き出すだけなんですよ。
あとは、そのデータをちょい改変して、同様な300個のmidiファイルを吐き出すだけなんですよ。
284277 (ワッチョイ 8a01-c9XW)
2020/07/07(火) 20:42:49.00ID:2cf+0s2v0 だから、excelでバイナルファイルを作りたいのです。
285デフォルトの名無しさん (ワッチョイ de02-VQSO)
2020/07/07(火) 21:00:27.95ID:yByKJQAn0 読み込めたなら反対をやればいいんじゃないの
286デフォルトの名無しさん (ワッチョイ 87da-VQSO)
2020/07/07(火) 21:05:07.15ID:CAdbpiIn0 >>283
著作権的にどうなの?
著作権的にどうなの?
287277 (ワッチョイ 8a01-c9XW)
2020/07/07(火) 21:10:37.49ID:2cf+0s2v0288デフォルトの名無しさん (ワッチョイ 1bac-OmMV)
2020/07/07(火) 21:13:27.88ID:BPFgnJg70 じゃあそうすればいいじゃない?
所詮16進数の文字の羅列(Byteの配列とかにはさすがに出来てるんやろ?)なんだから
最終的には好きに料理してファイルに吐き出せばいい
ただ、1つのセルにバイナリなんて入れたら手作業で編集なんてしずらくてしょうがないけどな
あとセルの文字数上限もあるだろうし
midiの規格書読んだことあるのかしらんが、よくチャンクとかバイナリいじって編集しようと思うな
所詮16進数の文字の羅列(Byteの配列とかにはさすがに出来てるんやろ?)なんだから
最終的には好きに料理してファイルに吐き出せばいい
ただ、1つのセルにバイナリなんて入れたら手作業で編集なんてしずらくてしょうがないけどな
あとセルの文字数上限もあるだろうし
midiの規格書読んだことあるのかしらんが、よくチャンクとかバイナリいじって編集しようと思うな
289デフォルトの名無しさん (ワッチョイ 87da-VQSO)
2020/07/07(火) 21:13:57.80ID:CAdbpiIn0 >>287
ならmidiの編集ソフトが使った方がいいね
ならmidiの編集ソフトが使った方がいいね
290277 (ワッチョイ 8a01-c9XW)
2020/07/07(火) 21:14:00.67ID:2cf+0s2v0 >>286
そもそも観賞するためのmidiデータではなく音楽制作に使うツールとしてのmidiデータなんだよね。
そもそも観賞するためのmidiデータではなく音楽制作に使うツールとしてのmidiデータなんだよね。
291デフォルトの名無しさん (ドコグロ MM7f-21HI)
2020/07/07(火) 21:14:32.40ID:/HMzap4UM >>282
C#やVB.NETもあるけど?w
C#やVB.NETもあるけど?w
292277 (ワッチョイ 8a01-c9XW)
2020/07/07(火) 21:22:41.71ID:2cf+0s2v0 >>288
> midiの規格書読んだことあるのかしらんが、よくチャンクとかバイナリいじって編集しようと思うな
基礎的な部分は把握してます。
> 所詮16進数の文字の羅列(Byteの配列とかにはさすがに出来てるんやろ?)
これがわからないんです。たとえば、4D 54 68 64という16進のデータをexcelの1つのセルに書き込む方法を教えて欲しいのです。
> midiの規格書読んだことあるのかしらんが、よくチャンクとかバイナリいじって編集しようと思うな
基礎的な部分は把握してます。
> 所詮16進数の文字の羅列(Byteの配列とかにはさすがに出来てるんやろ?)
これがわからないんです。たとえば、4D 54 68 64という16進のデータをexcelの1つのセルに書き込む方法を教えて欲しいのです。
293277 (ワッチョイ 8a01-c9XW)
2020/07/07(火) 21:25:44.85ID:2cf+0s2v0 で、excelの"C3"に、4D 54 68 64を書き込んで>>277のソースを動かして試してみたいんです。
294デフォルトの名無しさん (ワッチョイ 87da-VQSO)
2020/07/07(火) 21:26:04.88ID:CAdbpiIn0 これなんか良いんじゃね
https://openmidiproject.osdn.jp/Sekaiju.html
https://openmidiproject.osdn.jp/Sekaiju.html
295デフォルトの名無しさん (ワッチョイ 87da-VQSO)
2020/07/07(火) 21:29:51.89ID:CAdbpiIn0 midiの規格ってそんな簡単じゃないから素人が扱っても音が切れたりトラックがずれたりして
結局使えないだろ
結局使えないだろ
296デフォルトの名無しさん (ワッチョイ 1e63-LTdq)
2020/07/07(火) 21:32:34.47ID:7cSgkxva0 ExcelのRange#valueにバイト列なんか入るわけないんだから自分がわかりやすいように文字列か数値に勝手に変換して勝手に入れろとしか言えない
297デフォルトの名無しさん (テテンテンテン MMc6-LTdq)
2020/07/07(火) 21:34:29.92ID:MaHOmhaOM Excelでmidiデータを取り扱うなんて常人の発想ではない
たぶんあなた以外に誰も方法はわからないから頑張ってその道の第一人者になって欲しい
たぶんあなた以外に誰も方法はわからないから頑張ってその道の第一人者になって欲しい
298デフォルトの名無しさん (ワッチョイ 1bac-OmMV)
2020/07/07(火) 21:35:25.31ID:BPFgnJg70 >>292
セルに入れられるのはあくまで文字列ってこと理解してないの?
その例なら「Byte(0):77 Byte(1):84〜」とかいう配列から「4D 54 68 64」という文字列にしなければセルには書き込めない
Byteはそれぞれの数値が入ってるだろうけど、hexかなんかで16進数にしたうえで(編集上必要あるか知らんけど)
join(array, " ")かなんかで1つの文字列にする
くっそ編集しずらいだろうけどな
セルに入れられるのはあくまで文字列ってこと理解してないの?
その例なら「Byte(0):77 Byte(1):84〜」とかいう配列から「4D 54 68 64」という文字列にしなければセルには書き込めない
Byteはそれぞれの数値が入ってるだろうけど、hexかなんかで16進数にしたうえで(編集上必要あるか知らんけど)
join(array, " ")かなんかで1つの文字列にする
くっそ編集しずらいだろうけどな
299デフォルトの名無しさん (ワッチョイ 8ab5-5DWS)
2020/07/07(火) 21:44:56.92ID:tZSrRerM0 前スレのテキストフルスキャンの発想とコード提示してくれた人
改めて言わせて貰う
職場の一大イベントを乗り切ったわこれで
改めて言わせて貰う
職場の一大イベントを乗り切ったわこれで
300デフォルトの名無しさん (ワッチョイ 8ab5-5DWS)
2020/07/07(火) 21:46:02.99ID:tZSrRerM0 改めて多大なるお礼を言わせて貰うが抜けてた
これのおかげですべての可能性が広がったわ
これのおかげですべての可能性が広がったわ
301277 (ワッチョイ 8a01-c9XW)
2020/07/07(火) 22:23:53.24ID:2cf+0s2v0 では、すみません。 >>277の質問はなしにして、↓の質問をお願いします。
1、変数に「4D 54 68 64」のバイナリデータを代入するソース
2、中身は「4D 54 68 64」だけのファイル
3、ファイル名は5ch.bin
こんなファイルを作るにはどのようなソースを書けばよいでしょうか?
1、変数に「4D 54 68 64」のバイナリデータを代入するソース
2、中身は「4D 54 68 64」だけのファイル
3、ファイル名は5ch.bin
こんなファイルを作るにはどのようなソースを書けばよいでしょうか?
302277 (ワッチョイ 8a01-c9XW)
2020/07/07(火) 22:29:17.16ID:2cf+0s2v0 >>228
allrenameというフリーソフトを使えばいいのじゃ。
allrenameというフリーソフトを使えばいいのじゃ。
303デフォルトの名無しさん (ワッチョイ 87da-VQSO)
2020/07/07(火) 22:32:51.69ID:CAdbpiIn0 >>301
バイナリ編集のソフト使えばいいんじゃね
バイナリ編集のソフト使えばいいんじゃね
304301 (ワッチョイ 8a01-c9XW)
2020/07/07(火) 22:42:26.54ID:2cf+0s2v0 >>303
すみません。 「VBAを使って」でした。
すみません。 「VBAを使って」でした。
305デフォルトの名無しさん (ワッチョイ 0302-WfHi)
2020/07/07(火) 22:43:37.27ID:O/UE8zUS0 もはやExcelを使うことが目的化してる
306デフォルトの名無しさん (ワッチョイ de02-VQSO)
2020/07/07(火) 22:44:27.22ID:yByKJQAn0 それもう読み込んだデータ無意味やん
フォーマット知らんけどセルに書き出せたんならファイルにもいけるやろ
フォーマット知らんけどセルに書き出せたんならファイルにもいけるやろ
307301 (ワッチョイ 8a01-c9XW)
2020/07/07(火) 22:54:30.10ID:2cf+0s2v0 >>306
基礎になるソースさえ教えてもらえれば、そこに色々付け加えてって自分に必要なバイナリファイルが作れるんですよ。
基礎になるソースさえ教えてもらえれば、そこに色々付け加えてって自分に必要なバイナリファイルが作れるんですよ。
308デフォルトの名無しさん (ワッチョイ 1bac-OmMV)
2020/07/07(火) 22:57:06.69ID:BPFgnJg70 まず書く努力をしよう
309デフォルトの名無しさん (スッップ Sdaa-DbYN)
2020/07/07(火) 22:57:22.32ID:0KBHODZEd >>307
そろそろ死ねや
そろそろ死ねや
310デフォルトの名無しさん (ワッチョイ 3a02-ERT+)
2020/07/07(火) 23:05:51.69ID:1TMQwlbY0 Excelの設定もAppDataの中身も場所も変えて無いのに、
下記のように表示されてマクロが読めません!
「起動フォルダーにある個人用マクロブックは記録のために開かれた状態でなければなりません」
下記のように表示されてマクロが読めません!
「起動フォルダーにある個人用マクロブックは記録のために開かれた状態でなければなりません」
311デフォルトの名無しさん (ワッチョイ bbe5-R5kl)
2020/07/07(火) 23:09:31.21ID:exS2x9T+0312デフォルトの名無しさん (アウアウエー Sa13-c9t6)
2020/07/08(水) 00:06:04.08ID:66yUE/saa >>301
「'4D 54 68 64'」シングルかダブルで囲えば良いのでは?
「"4D 54 68 64"」
あるいは
いったんタブ区切りファイルtmp.tsvを途中で
中間ファイルとして介在させたらいいんじゃないですか?
「'4D 54 68 64'」シングルかダブルで囲えば良いのでは?
「"4D 54 68 64"」
あるいは
いったんタブ区切りファイルtmp.tsvを途中で
中間ファイルとして介在させたらいいんじゃないですか?
313デフォルトの名無しさん (ワッチョイ 65ac-OOGl)
2020/07/08(水) 00:14:08.99ID:4BPfKF9s0 ソースくれくれ君だからひんとあろうが自分で書かないよ、こういうやつ
314301 (ワッチョイ 2301-6wWl)
2020/07/08(水) 01:45:46.54ID:gPwSdoJG0 >>312
ありがとうございます。でも、「セルから変数を代入する」は止めました。で、>>277を変形してみたんですけど、↓のドコがまずいんですかね?
Sub test()
Dim TEMP As Variant
Dim I As Variant
Dim BIN As Variant
TEMP = Array(&H4D, &H54, &H68, &H54, &H68, &H64)
ReDim BIN(Len(TEMP) / 2 - 1) As Byte
For I = 1 To Len(TEMP) Step 2
BIN((I - 1) / 2) = Val("&H" & Mid(TEMP, I, 2))
Next I
Open "C:\1.BIN" For Binary As #1
Put #1, , BIN
Close #1
End Sub
ありがとうございます。でも、「セルから変数を代入する」は止めました。で、>>277を変形してみたんですけど、↓のドコがまずいんですかね?
Sub test()
Dim TEMP As Variant
Dim I As Variant
Dim BIN As Variant
TEMP = Array(&H4D, &H54, &H68, &H54, &H68, &H64)
ReDim BIN(Len(TEMP) / 2 - 1) As Byte
For I = 1 To Len(TEMP) Step 2
BIN((I - 1) / 2) = Val("&H" & Mid(TEMP, I, 2))
Next I
Open "C:\1.BIN" For Binary As #1
Put #1, , BIN
Close #1
End Sub
315301 (ワッチョイ 2301-6wWl)
2020/07/08(水) 01:49:45.50ID:gPwSdoJG0 つか、
ReDim BIN(Len(TEMP) / 2 - 1) As Byte
この部分が何だかわかんないんですよ。
まず、ReDimとは何だ?と。
ReDim BIN(Len(TEMP) / 2 - 1) As Byte
この部分が何だかわかんないんですよ。
まず、ReDimとは何だ?と。
316301 (ワッチョイ 2301-6wWl)
2020/07/08(水) 02:05:21.42ID:gPwSdoJG0 目的は、
&H4D, &H54, &H68, &H54, &H68, &H64という6個のバイナリデータだけの、
1.BINというファイルを作りたい!
です。
&H4D, &H54, &H68, &H54, &H68, &H64という6個のバイナリデータだけの、
1.BINというファイルを作りたい!
です。
317デフォルトの名無しさん (ワッチョイ cb63-jZ9g)
2020/07/08(水) 03:08:12.79ID:F8fi/iH60 Excelでやる事ではない
以上です
以上です
318デフォルトの名無しさん (ワッチョイ cb63-jZ9g)
2020/07/08(水) 03:11:39.83ID:F8fi/iH60 まずバイナリが何かすら分かってなさそうだしこの分だとmidiについても何も分かってなさそう
319デフォルトの名無しさん (ドコグロ MM43-jxlo)
2020/07/08(水) 03:24:41.69ID:llacuNM3M ここで聞くより、「vba バイナリデータ」でググったほうが早そう
320デフォルトの名無しさん (アウアウウー Sa09-X/TW)
2020/07/08(水) 04:08:36.29ID:a4KGuVW5a うちは会社のpcでバイナリ編集するのってセキュリティー的にアウトだし
321デフォルトの名無しさん (オッペケ Sra1-1RNA)
2020/07/08(水) 05:18:34.50ID:hKBgVgLRr この写真のように、例えば、3以下の数値をアクティブにする方法を教えて頂きたい
できれば、for next 構文はなしで
一発検索が望ましい。
https://i.imgur.com/EGujBbu.jpg
できれば、for next 構文はなしで
一発検索が望ましい。
https://i.imgur.com/EGujBbu.jpg
322デフォルトの名無しさん (アウアウエー Sa13-c9t6)
2020/07/08(水) 06:25:23.32ID:yrsbI81qa >>315> ReDimとは何だ?と
思ったらググって下さい。
ReDim BIN(Len(TEMP) / 2 - 1) As Byte
よくわからないですが動的配列を半分の長さで確保してるようです。
512÷2-1=255
forで繰り返すMid関数のスタート引数が1からのため配列の0番を1つ引算してまふ
「4D 54 68 64」ではなくてスペースなし「4D546864」か
Replace関数でスペースを削除しましょう
出来た文字列"4D546864"に対して
ループで前から2文字ずつ"&H"を付け足しているので
おそらく"&H4D&H54&H68&H64"が生成されるのでしょう
なので>>314のコードは全く意味がありません。
思ったらググって下さい。
ReDim BIN(Len(TEMP) / 2 - 1) As Byte
よくわからないですが動的配列を半分の長さで確保してるようです。
512÷2-1=255
forで繰り返すMid関数のスタート引数が1からのため配列の0番を1つ引算してまふ
「4D 54 68 64」ではなくてスペースなし「4D546864」か
Replace関数でスペースを削除しましょう
出来た文字列"4D546864"に対して
ループで前から2文字ずつ"&H"を付け足しているので
おそらく"&H4D&H54&H68&H64"が生成されるのでしょう
なので>>314のコードは全く意味がありません。
323デフォルトの名無しさん (アウアウエー Sa13-c9t6)
2020/07/08(水) 06:49:42.97ID:yrsbI81qa >>321> できれば、for next 構文はなしで
こんな縛りが無ければ普通にググって出てくるし以下で出来るだろうけど
複数のセルを選択する
http://officetanaka.net/excel/vba/tips/tips126.htm
こんな縛りが無ければ普通にググって出てくるし以下で出来るだろうけど
複数のセルを選択する
http://officetanaka.net/excel/vba/tips/tips126.htm
324デフォルトの名無しさん (ワッチョイ cb63-FYib)
2020/07/08(水) 07:11:29.93ID:x0V53xaA0 つーかわざわざselectする意味あんの?
325デフォルトの名無しさん (アウアウエー Sa13-b2Fx)
2020/07/08(水) 07:47:38.02ID:8s/zJrIHa わからないで書いてたのか
326デフォルトの名無しさん (スプッッ Sd03-Cpkm)
2020/07/08(水) 07:58:30.68ID:krt5VVG+d >>316
簡単だろw
Dim btByte() As Byte
Dim lngFN As Long
btByte(0)=&H4D
btByte(1)=&H54
btByte(2)=&H68
btByte(3)=&H54
btByte(4)=&H68
btByte(5)=&H64
lngFN=FreeFile
Open strPath For Binary As #lngFN
Put #lngFN, btByte
Close #lngFN
簡単だろw
Dim btByte() As Byte
Dim lngFN As Long
btByte(0)=&H4D
btByte(1)=&H54
btByte(2)=&H68
btByte(3)=&H54
btByte(4)=&H68
btByte(5)=&H64
lngFN=FreeFile
Open strPath For Binary As #lngFN
Put #lngFN, btByte
Close #lngFN
327デフォルトの名無しさん (スプッッ Sd03-Cpkm)
2020/07/08(水) 08:02:35.63ID:krt5VVG+d >>326
途中で送信しちまった。
スマホで書いてるからどっか間違ってるかも。
Dim btByte() As Byte
Dim lngFN As Long
Redim btByte(5) As Byte
btByte(0)=&H4D
btByte(1)=&H54
btByte(2)=&H68
btByte(3)=&H54
btByte(4)=&H68
btByte(5)=&H64
lngFN=FreeFile
Open strPath For Binary As #lngFN
Put #lngFN, , btByte
Close #lngFN
途中で送信しちまった。
スマホで書いてるからどっか間違ってるかも。
Dim btByte() As Byte
Dim lngFN As Long
Redim btByte(5) As Byte
btByte(0)=&H4D
btByte(1)=&H54
btByte(2)=&H68
btByte(3)=&H54
btByte(4)=&H68
btByte(5)=&H64
lngFN=FreeFile
Open strPath For Binary As #lngFN
Put #lngFN, , btByte
Close #lngFN
328デフォルトの名無しさん (スプッッ Sd03-Cpkm)
2020/07/08(水) 08:09:09.54ID:krt5VVG+d >>314
というかね、Variantとは何か、Byteは何かとか考えた方が良い。
扱える範囲が違うということはメモリ上のサイズが違うということ。
6個のバイナリって6Byteのファイルってことだろ。
Variant1個で16Byteだぞ。
というかね、Variantとは何か、Byteは何かとか考えた方が良い。
扱える範囲が違うということはメモリ上のサイズが違うということ。
6個のバイナリって6Byteのファイルってことだろ。
Variant1個で16Byteだぞ。
329301 (ワッチョイ 2301-6wWl)
2020/07/08(水) 09:06:02.86ID:gPwSdoJG0 みなさんレスありがとうございます。 感謝します。
>>327
ってことは、結局、↓でよいのでしょうか?
Sub test()
Dim btByte() As Byte
Dim lngFN As Long
ReDim btByte(5) As Byte
btByte(0) = &H4D
btByte(1) = &H54
btByte(2) = &H68
btByte(3) = &H54
btByte(4) = &H68
btByte(5) = &H64
lngFN = FreeFile
Open "C:\hogehoge.bin" For Binary As #lngFN
Put #lngFN, , btByte
Close #lngFN
End Sub
>>327
ってことは、結局、↓でよいのでしょうか?
Sub test()
Dim btByte() As Byte
Dim lngFN As Long
ReDim btByte(5) As Byte
btByte(0) = &H4D
btByte(1) = &H54
btByte(2) = &H68
btByte(3) = &H54
btByte(4) = &H68
btByte(5) = &H64
lngFN = FreeFile
Open "C:\hogehoge.bin" For Binary As #lngFN
Put #lngFN, , btByte
Close #lngFN
End Sub
330301 (ワッチョイ 2301-6wWl)
2020/07/08(水) 09:09:44.11ID:gPwSdoJG0 あるいは、↓ですかね? ↑も↓も「Open "C:\hogehoge.bin" For Binary As #lngFN」の業でパス名が無効です、というエラーがでます。
Sub test()
Dim btByte() As Byte
Dim lngFN As Long
ReDim btByte(5) As Byte
btByte(0) = &H4D
btByte(1) = &H54
btByte(2) = &H68
btByte(3) = &H54
btByte(4) = &H68
btByte(5) = &H64
lngFN = btByte
Open "C:\hogehoge.bin" For Binary As #lngFN
Put #lngFN, , btByte
Close #lngFN
End Sub
Sub test()
Dim btByte() As Byte
Dim lngFN As Long
ReDim btByte(5) As Byte
btByte(0) = &H4D
btByte(1) = &H54
btByte(2) = &H68
btByte(3) = &H54
btByte(4) = &H68
btByte(5) = &H64
lngFN = btByte
Open "C:\hogehoge.bin" For Binary As #lngFN
Put #lngFN, , btByte
Close #lngFN
End Sub
331デフォルトの名無しさん (ワッチョイ 1b68-ucCN)
2020/07/08(水) 09:23:12.29ID:yuZwXh1F0332301 (ワッチョイ 2301-6wWl)
2020/07/08(水) 09:32:29.70ID:gPwSdoJG0 つか、 FreeFile関数ってのがあるんですね 知らなかったw
333301 (ワッチョイ 2301-6wWl)
2020/07/08(水) 09:38:09.26ID:gPwSdoJG0 じゃあ、↓のドコが悪いんだろ?
Sub test()
Dim btByte() As Byte
Dim lngFN As Long
ReDim btByte(5) As Byte
btByte(0) = &H4D
btByte(1) = &H54
btByte(2) = &H68
btByte(3) = &H54
btByte(4) = &H68
btByte(5) = &H64
lngFN = FreeFile
Open "C:\hogehoge.bin" For Binary As #lngFN
Put #lngFN, , btByte
Close #lngFN
End Sub
Sub test()
Dim btByte() As Byte
Dim lngFN As Long
ReDim btByte(5) As Byte
btByte(0) = &H4D
btByte(1) = &H54
btByte(2) = &H68
btByte(3) = &H54
btByte(4) = &H68
btByte(5) = &H64
lngFN = FreeFile
Open "C:\hogehoge.bin" For Binary As #lngFN
Put #lngFN, , btByte
Close #lngFN
End Sub
334デフォルトの名無しさん (ワッチョイ bdda-ucCN)
2020/07/08(水) 09:40:18.98ID:R5JQxD1z0 >>332
つか、知らないことの方が多いくせに知ったかすんな
つか、知らないことの方が多いくせに知ったかすんな
335デフォルトの名無しさん (オッペケ Sra1-OOGl)
2020/07/08(水) 10:17:02.56ID:67N0qsNYr >>333
「どこが悪いんだろ」
ではなく、
「下記のソースで実行すると〜というエラーが出ます。
調べたところこのエラーの意味は〜と理解していますが、〜と修正したら今度は〜というエラーが出ます。〜〜」
と言ったように、自分でなんとか解決したいという姿勢がないとサポートなんてしたくならないよ
本当は誰も君の相手なんかしなくてもいいんだ
君は人の時間をいただこうとしてることを考えること
「どこが悪いんだろ」
ではなく、
「下記のソースで実行すると〜というエラーが出ます。
調べたところこのエラーの意味は〜と理解していますが、〜と修正したら今度は〜というエラーが出ます。〜〜」
と言ったように、自分でなんとか解決したいという姿勢がないとサポートなんてしたくならないよ
本当は誰も君の相手なんかしなくてもいいんだ
君は人の時間をいただこうとしてることを考えること
336デフォルトの名無しさん (ワッチョイ bd63-am2Z)
2020/07/08(水) 10:25:36.83ID:kC98LgO60 みんなやさしいよね
どこまでも相手してあげてるんだから
どこまでも相手してあげてるんだから
337デフォルトの名無しさん (ブーイモ MMeb-+b0N)
2020/07/08(水) 10:37:36.28ID:vI+4Hlt3M ハゲてきました。
市販の育毛剤で試すとエラーが出ます。
調べたところミノキシジルタブレットが聞くと理解しましたが、それを買って飲んだら今度は心臓ドキドキの副作用がでて命が危険だそうです。
どうしたらいいでしょうか?
市販の育毛剤で試すとエラーが出ます。
調べたところミノキシジルタブレットが聞くと理解しましたが、それを買って飲んだら今度は心臓ドキドキの副作用がでて命が危険だそうです。
どうしたらいいでしょうか?
338デフォルトの名無しさん (ワッチョイ 1b68-ucCN)
2020/07/08(水) 10:37:36.28ID:yuZwXh1F0 暇つぶしでしょ
339デフォルトの名無しさん (ワッチョイ 1b68-ucCN)
2020/07/08(水) 10:38:40.26ID:yuZwXh1F0 時間丸被りとかあんのな
340デフォルトの名無しさん (ワッチョイ cbcc-ucCN)
2020/07/08(水) 10:41:28.04ID:Fq6DmaU+0 >>333
C:\に変なもの置くな
C:\に変なもの置くな
341デフォルトの名無しさん (ワッチョイ a562-vuhN)
2020/07/08(水) 10:53:24.76ID:Ywdztm8P0 つーか動的配列にする意味あんの?
342デフォルトの名無しさん (ラクッペペ MMcb-0WwX)
2020/07/08(水) 12:08:46.81ID:lp5P2pBOM >>341
行間を読め
行間を読め
343デフォルトの名無しさん (ワッチョイ cb8e-edot)
2020/07/08(水) 16:22:19.40ID:0tPjVu1x0 だから最初に馬鹿はお断りしときゃいいんだよ
344301 (ワッチョイ 2301-6wWl)
2020/07/08(水) 17:12:58.80ID:gPwSdoJG0 つか、書き込み先を、D:\にしたら動いたwww
>>327さん、どうもありがとう!!!
こんなシンプルなソースでバイナリが書けるんです。
どんなにググッてもこんなにシンプルなソースは出て来ません。
vba史上の快挙です!
Sub test()
Dim btByte() As Byte
Dim lngFN As Long
ReDim btByte(5) As Byte
btByte(0) = &H4D
btByte(1) = &H54
btByte(2) = &H68
btByte(3) = &H54
btByte(4) = &H68
btByte(5) = &H64
lngFN = FreeFile
Open "D:\hogehoge.bin" For Binary As #lngFN
Put #lngFN, , btByte
Close #lngFN
End Sub
>>327さん、どうもありがとう!!!
こんなシンプルなソースでバイナリが書けるんです。
どんなにググッてもこんなにシンプルなソースは出て来ません。
vba史上の快挙です!
Sub test()
Dim btByte() As Byte
Dim lngFN As Long
ReDim btByte(5) As Byte
btByte(0) = &H4D
btByte(1) = &H54
btByte(2) = &H68
btByte(3) = &H54
btByte(4) = &H68
btByte(5) = &H64
lngFN = FreeFile
Open "D:\hogehoge.bin" For Binary As #lngFN
Put #lngFN, , btByte
Close #lngFN
End Sub
345デフォルトの名無しさん (ワッチョイ 65ac-OOGl)
2020/07/08(水) 17:43:43.08ID:4BPfKF9s0 はい次の方
346301 (ワッチョイ 2301-6wWl)
2020/07/08(水) 17:58:35.88ID:gPwSdoJG0 >>341
midiファイルというのはサイズが決まってないんですよ
midiファイルというのはサイズが決まってないんですよ
347デフォルトの名無しさん (ワッチョイ 2de6-0WwX)
2020/07/08(水) 19:59:20.87ID:7XVFoSLh0348デフォルトの名無しさん (ワッチョイ a5ae-7/eX)
2020/07/08(水) 20:31:33.87ID:cTUxRwdY0 >>344
死ね
死ね
349デフォルトの名無しさん (ワッチョイ fdea-6wWl)
2020/07/08(水) 21:18:00.92ID:J4iDAbFT0 いつも馬鹿な質問ばかりで済みません。
Excelファイルをダブルクリックした際に他の人が先に開いていた場合、[読み取り専用]か、[通知]か聞かれます。
これをダイアログを出さずに最初から読専で開くようにすることは可能でしょうか?
(最初に開いた人は編集・保存できるという前提です)
外部から開く際のコントロールは簡単ですが、自分自身でコントロールするのは無理ですかね?
Workbook_Openでいろいろ試したのですが、どうもこのイベントよりも先にダイアログが発生しているようで、、、
無理だ、という回答でもいいです。ご意見ください。
Excelファイルをダブルクリックした際に他の人が先に開いていた場合、[読み取り専用]か、[通知]か聞かれます。
これをダイアログを出さずに最初から読専で開くようにすることは可能でしょうか?
(最初に開いた人は編集・保存できるという前提です)
外部から開く際のコントロールは簡単ですが、自分自身でコントロールするのは無理ですかね?
Workbook_Openでいろいろ試したのですが、どうもこのイベントよりも先にダイアログが発生しているようで、、、
無理だ、という回答でもいいです。ご意見ください。
350デフォルトの名無しさん (アウアウウー Sa09-90sC)
2020/07/08(水) 21:25:31.07ID:eeGZOJTWa351デフォルトの名無しさん (ワッチョイ 2d7c-6wWl)
2020/07/08(水) 21:41:34.04ID:eWJ0cHmK0352デフォルトの名無しさん (ワッチョイ fdea-6wWl)
2020/07/08(水) 21:42:45.60ID:J4iDAbFT0353デフォルトの名無しさん (ワッチョイ fdea-6wWl)
2020/07/08(水) 21:46:48.09ID:J4iDAbFT0354蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ d501-ZaXI)
2020/07/08(水) 22:00:15.73ID:wtc6YQgJ0355デフォルトの名無しさん (ワッチョイ fdea-6wWl)
2020/07/08(水) 22:05:22.90ID:J4iDAbFT0 >>354
う〜〜ん、あまり危ない橋は渡らないでおきます。
う〜〜ん、あまり危ない橋は渡らないでおきます。
356デフォルトの名無しさん (ワッチョイ bdda-ucCN)
2020/07/08(水) 22:32:26.07ID:R5JQxD1z0 >>353
調べ方を調べてから言え
調べ方を調べてから言え
357デフォルトの名無しさん (ワッチョイ fdea-6wWl)
2020/07/08(水) 23:26:10.17ID:J4iDAbFT0 >>356
じゃあ、
>>349の繰り返しになりますが、、箇条書きにしますね。
●Excelファイルをダブルクリックした際の挙動についてです。
** つまり、外部から開くケースは除外です。(こちらのコントロールに苦はありません。昔から使っています)
「外部から」とは、具体的には、、以下のケースなど。
・ Workbooks.Openの引数で制御する。(VBSからのOpenも含む)
・ ContextMenuの"新規作成"で開く。
●他の人が開いていた場合のケースです。
** 最初に開いている人は編集・保存ができる前提です。
→ つまり、FileAttributeを最初からReadOnlyにするケースは除外です。
●上記の際の、[読専]|[通知]を聞いてくるDialogをバイパスしたい。
** 「最初から読専で開きたいわけではなく、誰かが開いているときは最初から読専にしたい」
→ つまり外部から開くケースにあたらない。
● 自ファイル側で判定したい、、、Workbook_Openで試したが、このイベントより先に
ダイアログが発生してる。
>>349とほぼ同じ内容ですが、これだけ書けばどこまでの理解で何を試したか読み取れますか?
じゃあ、
>>349の繰り返しになりますが、、箇条書きにしますね。
●Excelファイルをダブルクリックした際の挙動についてです。
** つまり、外部から開くケースは除外です。(こちらのコントロールに苦はありません。昔から使っています)
「外部から」とは、具体的には、、以下のケースなど。
・ Workbooks.Openの引数で制御する。(VBSからのOpenも含む)
・ ContextMenuの"新規作成"で開く。
●他の人が開いていた場合のケースです。
** 最初に開いている人は編集・保存ができる前提です。
→ つまり、FileAttributeを最初からReadOnlyにするケースは除外です。
●上記の際の、[読専]|[通知]を聞いてくるDialogをバイパスしたい。
** 「最初から読専で開きたいわけではなく、誰かが開いているときは最初から読専にしたい」
→ つまり外部から開くケースにあたらない。
● 自ファイル側で判定したい、、、Workbook_Openで試したが、このイベントより先に
ダイアログが発生してる。
>>349とほぼ同じ内容ですが、これだけ書けばどこまでの理解で何を試したか読み取れますか?
358デフォルトの名無しさん (ワッチョイ 65ac-OOGl)
2020/07/08(水) 23:40:00.14ID:4BPfKF9s0 てかそんなんできたらマルウェアの温床になるから出来ないって思っとけよ
共有化でも足りないんならあきらめろん
共有化でも足りないんならあきらめろん
359デフォルトの名無しさん (ワッチョイ fdea-6wWl)
2020/07/08(水) 23:44:27.92ID:J4iDAbFT0360デフォルトの名無しさん (アウアウウー Sa09-X/TW)
2020/07/09(木) 00:12:21.12ID:dz7PM5ALa >>346
midiはファイルの種類じゃない
midiはファイルの種類じゃない
361デフォルトの名無しさん (ワッチョイ 2d7c-6wWl)
2020/07/09(木) 00:12:27.29ID:ylhvfSy00 ファイルが書き込めない状態になってたら読み取り専用で開けばいいだけじゃん
362デフォルトの名無しさん (アウアウウー Sa09-X/TW)
2020/07/09(木) 00:13:47.48ID:dz7PM5ALa >>357
きもい
きもい
363デフォルトの名無しさん (アウアウウー Sa09-X/TW)
2020/07/09(木) 00:17:27.90ID:dz7PM5ALa 社会で他の人も使うファイル勝手にいじるなよ
364デフォルトの名無しさん (ワッチョイ cbdd-7n2a)
2020/07/09(木) 00:44:28.03ID:HzjnRl+40365デフォルトの名無しさん (アウアウウー Sa09-X/TW)
2020/07/09(木) 02:16:40.71ID:eQo6hEQpa >>364
おまえに言ってない
おまえに言ってない
366デフォルトの名無しさん (ワッチョイ a58b-GkYD)
2020/07/09(木) 03:10:18.53ID:rHxVo6X00 IE制御のついての質問。
マクロでIE制御を使ってウェブ情報を取り込んでいるんですが、連続で作動させると稀に止まることがあります。
バグった時にタスクマネージャーの詳細をみると毎回「ielowutil.exe」のプロセスだけ残ってるんですよね。
タスクマネージャーでielowutil.exe を右クリックして強制終了させると、また上手く作動するんですが、この ielowutil.exe プロセスを強制的に終了させるコードとかないですかね。
ぐぐっても英語とか読めないのでわからない。誰か助けて
https://www.mrexcel.com/board/threads/vba-automation-error-2125463506-8150002e.1079769/
マクロでIE制御を使ってウェブ情報を取り込んでいるんですが、連続で作動させると稀に止まることがあります。
バグった時にタスクマネージャーの詳細をみると毎回「ielowutil.exe」のプロセスだけ残ってるんですよね。
タスクマネージャーでielowutil.exe を右クリックして強制終了させると、また上手く作動するんですが、この ielowutil.exe プロセスを強制的に終了させるコードとかないですかね。
ぐぐっても英語とか読めないのでわからない。誰か助けて
https://www.mrexcel.com/board/threads/vba-automation-error-2125463506-8150002e.1079769/
367デフォルトの名無しさん (ワッチョイ cb63-jZ9g)
2020/07/09(木) 03:59:15.57ID:uBlORkna0 taskkill /im ielowutil.exe
なんでもかんでもExcelでやろうとするな
なんでもかんでもExcelでやろうとするな
368301 (ワッチョイ 2301-6wWl)
2020/07/09(木) 05:30:09.44ID:C69oBRyL0 つか、>>344のソースの
> ReDim btByte(5) As Byte
> btByte(0) = &H4D
> btByte(1) = &H54
> btByte(2) = &H68
> btByte(3) = &H54
> btByte(4) = &H68
> btByte(5) = &H64
この部分で、btByteという変数に6個の16進数を代入していますが、もっとエレガントに代入する方法はないでしょうか?
実は定型文みたいのを50個ぐらい入れなきゃならないのです。
> ReDim btByte(5) As Byte
> btByte(0) = &H4D
> btByte(1) = &H54
> btByte(2) = &H68
> btByte(3) = &H54
> btByte(4) = &H68
> btByte(5) = &H64
この部分で、btByteという変数に6個の16進数を代入していますが、もっとエレガントに代入する方法はないでしょうか?
実は定型文みたいのを50個ぐらい入れなきゃならないのです。
369デフォルトの名無しさん (アウアウクー MM21-jZ9g)
2020/07/09(木) 06:03:23.76ID:hGjJ3XRlM ないです
次の方どうぞ
次の方どうぞ
370デフォルトの名無しさん (スプッッ Sd93-56/R)
2020/07/09(木) 06:34:39.36ID:pd2EiZRKd >>368
そういうのは、あらかじめ用意したバイナリファイルから読み込んだ方がいいと思うんだけど
どうしてもソースに大量の16進数を直接書きたいなら
配列を使う方法
h = Array(&H4D, &H54, &H68, &H54, &H68, &H64)
For i = 0 To 5
btByte = h(i)
Next
文字列を使う方法
h = "4D,54,68,54,68,64"
For i = 0 To 5
btByte(i) = Val("&H" & Mid(h, i * 3 + 1, 2))
Next
そういうのは、あらかじめ用意したバイナリファイルから読み込んだ方がいいと思うんだけど
どうしてもソースに大量の16進数を直接書きたいなら
配列を使う方法
h = Array(&H4D, &H54, &H68, &H54, &H68, &H64)
For i = 0 To 5
btByte = h(i)
Next
文字列を使う方法
h = "4D,54,68,54,68,64"
For i = 0 To 5
btByte(i) = Val("&H" & Mid(h, i * 3 + 1, 2))
Next
371301 (ワッチョイ 2301-6wWl)
2020/07/09(木) 06:37:41.14ID:C69oBRyL0 >>370
ありがとうございます。 感謝します。
ありがとうございます。 感謝します。
372デフォルトの名無しさん (スプッッ Sd93-56/R)
2020/07/09(木) 06:38:57.33ID:pd2EiZRKd 文字列を使う方法2
h = "4D,54,68,54,68,64"
For i = 0 To 5
btByte(i) = Val("&H" & Split(h, ",")(i))
Next
h = "4D,54,68,54,68,64"
For i = 0 To 5
btByte(i) = Val("&H" & Split(h, ",")(i))
Next
373デフォルトの名無しさん (アウアウウー Sa09-X/TW)
2020/07/09(木) 06:57:38.94ID:150ctWWia エレガント?
374デフォルトの名無しさん (スプッッ Sd81-Cpkm)
2020/07/09(木) 07:48:49.30ID:3iI6FAhKd >>368
そのエレガントな方法を考えるのがプログラミングなんじゃないの?
50個をコードでどうにかするなら、それをコードに書かにゃならんからエレガントにはならん。
別の所に持って良いなら別途ファイルを用意しとけば良い。
設定とか50個程度ならどっかのシートに書いとくとかでも良い。
そのエレガントな方法を考えるのがプログラミングなんじゃないの?
50個をコードでどうにかするなら、それをコードに書かにゃならんからエレガントにはならん。
別の所に持って良いなら別途ファイルを用意しとけば良い。
設定とか50個程度ならどっかのシートに書いとくとかでも良い。
375デフォルトの名無しさん (オッペケ Sra1-OOGl)
2020/07/09(木) 07:58:21.56ID:8/Q//t/ar ほんとコードくれくれ君は自分で何も考えないな
あげる方も頭おかしいが
あげる方も頭おかしいが
376デフォルトの名無しさん (ワッチョイ bdda-ucCN)
2020/07/09(木) 10:13:45.21ID:tVMvaFoW0 激しく同意する
ちなみにバイナリを作成するやり方で実行ファイルが作れるのでウイルシなんかも作れてしまうわけだが
ちなみにバイナリを作成するやり方で実行ファイルが作れるのでウイルシなんかも作れてしまうわけだが
377デフォルトの名無しさん (ワッチョイ cbb0-mXGD)
2020/07/09(木) 10:32:17.05ID:VstlXiSO0 モジュールから単体動作する関数を切り取って、別のモジュールにコピーしたのですが
変数の宣言がないとエラー表示されました。何度見ても宣言は正しくされているので?です。
新しく変数宣言して、置き換えると動作します。
こんなことあるのですか?
変数の宣言がないとエラー表示されました。何度見ても宣言は正しくされているので?です。
新しく変数宣言して、置き換えると動作します。
こんなことあるのですか?
378デフォルトの名無しさん (ワッチョイ 2d7c-6wWl)
2020/07/09(木) 10:47:12.19ID:ylhvfSy00 >>377
変数?定数?
変数?定数?
379デフォルトの名無しさん (ワッチョイ cbb0-mXGD)
2020/07/09(木) 10:48:52.16ID:VstlXiSO0 すみません。変数ではなく定数(const)でした。
380デフォルトの名無しさん (ワッチョイ 2d7c-6wWl)
2020/07/09(木) 10:53:22.69ID:ylhvfSy00 >>379
グローバルな定数?
グローバルな定数?
381デフォルトの名無しさん (ワッチョイ cbb0-mXGD)
2020/07/09(木) 11:12:09.02ID:VstlXiSO0 ローカルです。
382デフォルトの名無しさん (ワッチョイ bd49-OOGl)
2020/07/09(木) 11:19:56.91ID:JYozEgDc0 option explicitの有無は?
383デフォルトの名無しさん (アウアウエー Sa13-c9t6)
2020/07/09(木) 11:21:50.10ID:DLLEuHaFa >>376
みんなわざわざ煙に巻いてるのに言っちゃ
みんなわざわざ煙に巻いてるのに言っちゃ
384デフォルトの名無しさん (ワッチョイ cbb0-mXGD)
2020/07/09(木) 11:26:19.87ID:VstlXiSO0 >>382
option explicitはあります。
option explicitはあります。
385デフォルトの名無しさん (ワッチョイ 2d7c-6wWl)
2020/07/09(木) 11:30:45.63ID:ylhvfSy00386デフォルトの名無しさん (ワッチョイ bd49-OOGl)
2020/07/09(木) 12:02:59.73ID:JYozEgDc0 コピペしたとき?
実行したとき?
実行したとき?
387デフォルトの名無しさん (ワッチョイ cbb0-mXGD)
2020/07/09(木) 12:29:25.07ID:VstlXiSO0388デフォルトの名無しさん (ワッチョイ cbb0-mXGD)
2020/07/09(木) 14:14:55.78ID:VstlXiSO0 >385>386
他の箇所でも同様のエラー起きましたが書き直せば動作しました。
ありがとうございました。
他の箇所でも同様のエラー起きましたが書き直せば動作しました。
ありがとうございました。
389デフォルトの名無しさん (ラクッペペ MMcb-0WwX)
2020/07/09(木) 18:37:42.36ID:dhOVscThM390デフォルトの名無しさん (ワッチョイ 1b68-ucCN)
2020/07/09(木) 18:40:33.54ID:WyUmT5e70 >>389
その脳内変換が意味不明
その脳内変換が意味不明
391デフォルトの名無しさん (ラクッペペ MMcb-0WwX)
2020/07/09(木) 18:53:47.54ID:dhOVscThM バイナリに謎の恐怖心を持っているんだろ?
そもそも2進数じゃなくて16進数だ
そもそも2進数じゃなくて16進数だ
392デフォルトの名無しさん (ドコグロ MM93-65sm)
2020/07/09(木) 19:27:38.21ID:0UE7wqUeM まあイチからバイナリ書き出しで実行ファイ作れるような人はこんな質問しないけどな
393デフォルトの名無しさん (ワッチョイ 1b68-ucCN)
2020/07/09(木) 19:41:37.34ID:WyUmT5e70 >>391
その脳内変換が意味不明
その脳内変換が意味不明
394デフォルトの名無しさん (ワッチョイ 65ac-OOGl)
2020/07/09(木) 19:50:25.19ID:tq6y70T30 元々の変な質問のせいでくだらない流れになった
はい次の方
はい次の方
395デフォルトの名無しさん (ラクッペペ MMcb-1Cui)
2020/07/09(木) 20:05:26.54ID:SKtauNRXM VBAに将来はありますか?
396デフォルトの名無しさん (ブーイモ MMeb-qwbb)
2020/07/09(木) 20:11:04.35ID:F9SMopSBM397デフォルトの名無しさん (ワッチョイ 7592-jZ9g)
2020/07/09(木) 20:13:33.30ID:K5359iyV0 そういえばExcelにPython載るって話はどうなったの?
398デフォルトの名無しさん (ワッチョイ a5da-EOHM)
2020/07/09(木) 20:29:37.44ID:Qt+epPmk0399デフォルトの名無しさん (ワッチョイ 83ee-Bqa1)
2020/07/09(木) 21:13:12.39ID:54FX1SKx0 Dim objShell As Object ←値参照
Dim objExec As Object
Sub ie_kill()
Set objShell = CreateObject("WScript.Shell") ←これなに???なんで必要なの???
Set objExec = objShell.Exec("taskkill.exe /F /IM iexplore.exe") ←iexplore.exeをタスクキル
Dim objExec As Object
Sub ie_kill()
Set objShell = CreateObject("WScript.Shell") ←これなに???なんで必要なの???
Set objExec = objShell.Exec("taskkill.exe /F /IM iexplore.exe") ←iexplore.exeをタスクキル
400デフォルトの名無しさん (アウアウエー Sa13-c9t6)
2020/07/09(木) 21:27:01.41ID:YMHQKg0aa >>399
CreateObjectまんまオブジェクトを創造してます
CreateObjectまんまオブジェクトを創造してます
401デフォルトの名無しさん (ワッチョイ 1bf7-38vb)
2020/07/09(木) 21:31:09.68ID:36OHf5x10 New使っちゃいなよ
402デフォルトの名無しさん (ワッチョイ 2d7c-6wWl)
2020/07/09(木) 21:42:49.37ID:ylhvfSy00 >>399
参照設定をしていればいらない
参照設定をしていればいらない
403デフォルトの名無しさん (ワッチョイ fdce-56/R)
2020/07/10(金) 10:20:58.35ID:O0QgyOqq0404デフォルトの名無しさん (ワッチョイ 83ee-Bqa1)
2020/07/10(金) 13:53:04.16ID:3B5Gxm0d0 ExcelってIE制御からedge制御できるようになった?
未だにIEが一番使い勝手いいの?
未だにIEが一番使い勝手いいの?
405デフォルトの名無しさん (ワッチョイ 75f1-+b0N)
2020/07/10(金) 14:38:15.55ID:91NkPSzZ0 ExcelってChrome制御できるようになった?
406デフォルトの名無しさん (ワッチョイ a5da-1Cui)
2020/07/10(金) 15:03:43.58ID:DnP9bxpW0 いまはExcelがブラウザを制御するのではなくてブラウザがExcelを制御する方向性が主流
VBAはあくまでExcel内で完結する作業に限定した言語であって外部との連携作業はOfficeアドイン(実体はJavaScriptなどのスクリプト言語)や
VSTO(VisualStdioで言語はC#が中心)で行なうのがMicrosoftの方針
Pytonはよく分からんけど上手くOfficeAPIを利用すれば出来るかもしれない
概要についてのドキュメントは>>398
VBAはあくまでExcel内で完結する作業に限定した言語であって外部との連携作業はOfficeアドイン(実体はJavaScriptなどのスクリプト言語)や
VSTO(VisualStdioで言語はC#が中心)で行なうのがMicrosoftの方針
Pytonはよく分からんけど上手くOfficeAPIを利用すれば出来るかもしれない
概要についてのドキュメントは>>398
407デフォルトの名無しさん (オッペケ Sra1-OOGl)
2020/07/10(金) 15:20:21.38ID:TbXdOMZ+r てゆかブラウザ操作するよりAPI叩いたりスクレイピングするほうが主流よね、今は
ずっと昔はExcelで入力してIEに反映させるとかあったけど、今じゃレガシーすぎる
ずっと昔はExcelで入力してIEに反映させるとかあったけど、今じゃレガシーすぎる
408デフォルトの名無しさん (ワッチョイ 05da-ucCN)
2020/07/10(金) 17:42:22.09ID:OUgIsXw30 ウチはシステムが古くてAPIなんてものに対応してないので現役だわ。
409デフォルトの名無しさん (ワッチョイ bdda-ucCN)
2020/07/10(金) 20:17:34.10ID:R/wZjJlU0 人間も古いからちょうどいい
410デフォルトの名無しさん (スップ Sd43-Cpkm)
2020/07/10(金) 21:41:25.81ID:rd+FvU1jd >>407
API叩くのもスクレイピングも変わらんけどな。
何でやるかの違いくらい。
まあ、Chrome制御は出来んけどな。
WebDriver使えるから出来るとも言えるか。
何処から何処迄がExcelって話。
API叩くのもスクレイピングも変わらんけどな。
何でやるかの違いくらい。
まあ、Chrome制御は出来んけどな。
WebDriver使えるから出来るとも言えるか。
何処から何処迄がExcelって話。
411デフォルトの名無しさん (スップ Sd43-Cpkm)
2020/07/10(金) 21:42:22.54ID:rd+FvU1jd >>406
VSIOは寧ろ廃れてるような気がするが。
VSIOは寧ろ廃れてるような気がするが。
412デフォルトの名無しさん (スップ Sd43-Cpkm)
2020/07/10(金) 21:42:47.24ID:rd+FvU1jd >>411
VSTOな。
VSTOな。
413デフォルトの名無しさん (アウアウエー Sa13-mWkt)
2020/07/10(金) 22:02:00.46ID:c4ANmjzxa >>412
VIOな
VIOな
414デフォルトの名無しさん (ワッチョイ 75f1-+b0N)
2020/07/10(金) 22:39:50.15ID:91NkPSzZ0 >>413
それはちん毛ちんこケツの穴のことだ
それはちん毛ちんこケツの穴のことだ
415デフォルトの名無しさん (ワッチョイ 2d02-aL1r)
2020/07/11(土) 00:41:33.92ID:vLv3KjHj0 あかん、モーむり
sendkeys使いすぎてるせいで
Numlockキーがオンになったりオフになったり・・・
かと言って必ずオンオフ切り替わるかというとそうでもないし
誰か絶対100%常にNumlockオンになるコード教えてくれえ
sendkeys使いすぎてるせいで
Numlockキーがオンになったりオフになったり・・・
かと言って必ずオンオフ切り替わるかというとそうでもないし
誰か絶対100%常にNumlockオンになるコード教えてくれえ
416デフォルトの名無しさん (ドコグロ MM93-jxlo)
2020/07/11(土) 01:11:16.23ID:2VuM3xocM >>415
vbaでレジストリを操作できるから、そこに道があるかも知れない
vbaでレジストリを操作できるから、そこに道があるかも知れない
417デフォルトの名無しさん (ワッチョイ 9bc9-ucCN)
2020/07/11(土) 02:13:29.34ID:Eg2/WlgT0 >>415
2 つ以上の SendKeys ステートメントが連続して実行されると、NumLock キーがオフになる
2 つ以上の SendKeys ステートメントが連続して実行されると、NumLock キーがオフになる
418デフォルトの名無しさん (ワッチョイ fdce-56/R)
2020/07/11(土) 02:29:45.71ID:6j9f8L+G0419デフォルトの名無しさん (ワッチョイ 2d02-aL1r)
2020/07/11(土) 09:37:08.18ID:vLv3KjHj0 ありがとうございます
418の方法も試したんですが、なぜか一回目では適用されず
あと418の一番下にある、入力リストを展開するとは一体?
418の方法も試したんですが、なぜか一回目では適用されず
あと418の一番下にある、入力リストを展開するとは一体?
420デフォルトの名無しさん (スップ Sd43-Cpkm)
2020/07/11(土) 10:30:37.96ID:R2Hyt8Cad421デフォルトの名無しさん (ワッチョイ 75f1-+b0N)
2020/07/11(土) 10:36:45.99ID:QNz3pRQ00 糞!ですか
422デフォルトの名無しさん (オイコラミネオ MM51-aL1r)
2020/07/11(土) 10:40:32.24ID:VwbCqtVvM 何年前からのバグなんだろうねこれって
423デフォルトの名無しさん (スップ Sd43-Cpkm)
2020/07/11(土) 10:45:18.55ID:R2Hyt8Cad >>421
Sendkeysは基本的にコントロール出来ない。
他アプリを操作するにはもっとコントロール出来る方法がある。
どうにも出来ない時は仕方がないが、絶対に使わないつもりで、どうにもならない時だけ使うべきだね。
Sendkeysは基本的にコントロール出来ない。
他アプリを操作するにはもっとコントロール出来る方法がある。
どうにも出来ない時は仕方がないが、絶対に使わないつもりで、どうにもならない時だけ使うべきだね。
424デフォルトの名無しさん (スップ Sd43-Cpkm)
2020/07/11(土) 10:51:22.16ID:R2Hyt8Cad あと、危険は承知でちょろっと使う時はある。
お手軽だから。
でも、それで使うことを許容すると危険もしらず、ちょろっとで済まない所で使う奴が出てくる。
お手軽だから。
でも、それで使うことを許容すると危険もしらず、ちょろっとで済まない所で使う奴が出てくる。
425デフォルトの名無しさん (ワッチョイ bdda-ucCN)
2020/07/11(土) 11:53:42.98ID:vrrLv2a80 Excelを頼りすぎ
426デフォルトの名無しさん (アウアウエー Sa13-c9t6)
2020/07/11(土) 11:59:27.85ID:8xOOoQBua Excelで恋愛相談から今晩のおかずまで
427デフォルトの名無しさん (ワッチョイ 65ac-OOGl)
2020/07/11(土) 12:25:50.11ID:DdDKJrYh0 sendkeysって手段としてしょうもなさすぎるんだよな
目的を整理すれば他にもっといいやり方があるはず
目的を整理すれば他にもっといいやり方があるはず
428デフォルトの名無しさん (ワッチョイ cbaa-aL1r)
2020/07/11(土) 12:40:05.09ID:pqxpyZgt0 キーワードによる予測変換機能っぽいのをやろうとしたときに、
いいコード無いか探してたら使ってたなsendkeys
いいコード無いか探してたら使ってたなsendkeys
429デフォルトの名無しさん (ワッチョイ 75f1-+b0N)
2020/07/11(土) 13:02:10.38ID:QNz3pRQ00 糞!
430デフォルトの名無しさん (ワッチョイ fdce-56/R)
2020/07/11(土) 13:57:47.97ID:6j9f8L+G0431デフォルトの名無しさん (スップ Sd43-Cpkm)
2020/07/11(土) 14:02:53.27ID:R2Hyt8Cad432デフォルトの名無しさん (ワッチョイ 2301-65sm)
2020/07/11(土) 18:21:43.63ID:2M7rjl8q0 大抵のアプリは外部からの要求を受けるのはマウスとキーボードだけだから
433デフォルトの名無しさん (ワッチョイ a346-s8xH)
2020/07/11(土) 18:52:58.44ID:6knL1xMy0 あ、ちょっと失礼。
ほんの少し前、テキストボックスに入力された数式をだったか
マクロだったかをプロシージャにして実行するってなことをやってたんだが
すっかり忘れてしまいました。
どうやるんでしたでしょうか。
OS;Windows 98
Excel 97
ほんの少し前、テキストボックスに入力された数式をだったか
マクロだったかをプロシージャにして実行するってなことをやってたんだが
すっかり忘れてしまいました。
どうやるんでしたでしょうか。
OS;Windows 98
Excel 97
434デフォルトの名無しさん (ワッチョイ 05da-ucCN)
2020/07/11(土) 19:37:48.81ID:Nux+IN340435デフォルトの名無しさん (ワッチョイ cb8e-edot)
2020/07/11(土) 20:21:11.98ID:UiWBFlGj0 >>433
死ね
死ね
436デフォルトの名無しさん (ワッチョイ bdda-ucCN)
2020/07/11(土) 23:15:56.45ID:vrrLv2a80 >>433
そのうち思い出すから
そのうち思い出すから
437デフォルトの名無しさん (ワッチョイ 75d0-6wWl)
2020/07/12(日) 08:33:32.60ID:lihdyx4V0 >>433
Application.Run
Application.Run
438デフォルトの名無しさん (オイコラミネオ MM51-aL1r)
2020/07/13(月) 14:37:54.03ID:1lzMxcCPM sendkeys問題解決しました
ありがとう!create object wscript.shell.sendkeysでうまいこと行けた
ありがとう!create object wscript.shell.sendkeysでうまいこと行けた
439デフォルトの名無しさん (ベーイモ MM2b-EFBW)
2020/07/14(火) 20:11:25.31ID:zXCz2P4SM 二つのieを起動して2つ目のieにpdfを表示させてそのpdfをexecwbのsaveasで名前をつけて保存したいのですが名前をつけて保存ダイアログに一つ目のieのファイルが保存項目として表示されてしまいます。どなたかわかる方教えてください。よろしくお願いします。
これがそのコードです getIE はシェル取得ファンクションです
長すぎると書き込めないので省略しました
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.navigate "http://book.impress.co.jp/appended3384/4-4.html"
Dim ie2 As InternetExplorer
Set ie2 = CreateObject("InternetExplorer.Application")
ie2.Visible = True
ie2.Navigate2 "C:\\Desktop\test.pdf", 1
Set ie2 = getIE("test")
Dim test As String
test = "c:\test\test.pdf"
ie2.ExecWB OLECMDID_SAVEAS, OLECMDEXECOPT_DONTPROMPTUSER, test
End sub
これがそのコードです getIE はシェル取得ファンクションです
長すぎると書き込めないので省略しました
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.navigate "http://book.impress.co.jp/appended3384/4-4.html"
Dim ie2 As InternetExplorer
Set ie2 = CreateObject("InternetExplorer.Application")
ie2.Visible = True
ie2.Navigate2 "C:\\Desktop\test.pdf", 1
Set ie2 = getIE("test")
Dim test As String
test = "c:\test\test.pdf"
ie2.ExecWB OLECMDID_SAVEAS, OLECMDEXECOPT_DONTPROMPTUSER, test
End sub
440デフォルトの名無しさん (ワッチョイ 89da-YsWi)
2020/07/15(水) 02:33:14.34ID:ZAnqbcST0 Excelでやることか?
441デフォルトの名無しさん (ワッチョイ 892c-dDBt)
2020/07/15(水) 04:42:17.63ID:IqfNcqeZ0442デフォルトの名無しさん (ワッチョイ bd05-/Lr1)
2020/07/15(水) 05:05:59.66ID:T7WU5W0H0 Set ws1 = Worksheets(1)
Set ws2 = Worksheets(2)
n = ws2.Cells(Rows.Count, "E").End(xlUp).Row
n = n + 1
For i = 2 To ws1.Cells(Rows.Count, "A").End(xlUp).Row
j = 1
ws2.Cells(n, 5).Value = ws1.Cells(i, j).Value
n = n + 1
j = j + 1
ws2.Cells(n, 5).Value = ws1.Cells(i, j).Value
n = n + 1
j = j + 1
ws2.Cells(n, 5).Value = ws1.Cells(i, j).Value
n = n + 1
j = j + 1
ws2.Cells(n, 5).Value = ws1.Cells(i, j).Value
n = n + 1
j = j + 1
ws2.Cells(n, 5).Value = ws1.Cells(i, j).Value
n = n + 1
j = j + 1
これが10回ほど続くんですか簡潔にかけませんか?
Set ws2 = Worksheets(2)
n = ws2.Cells(Rows.Count, "E").End(xlUp).Row
n = n + 1
For i = 2 To ws1.Cells(Rows.Count, "A").End(xlUp).Row
j = 1
ws2.Cells(n, 5).Value = ws1.Cells(i, j).Value
n = n + 1
j = j + 1
ws2.Cells(n, 5).Value = ws1.Cells(i, j).Value
n = n + 1
j = j + 1
ws2.Cells(n, 5).Value = ws1.Cells(i, j).Value
n = n + 1
j = j + 1
ws2.Cells(n, 5).Value = ws1.Cells(i, j).Value
n = n + 1
j = j + 1
ws2.Cells(n, 5).Value = ws1.Cells(i, j).Value
n = n + 1
j = j + 1
これが10回ほど続くんですか簡潔にかけませんか?
443デフォルトの名無しさん (アウアウエー Sa02-l+/r)
2020/07/15(水) 05:28:08.89ID:jQlbMrrka444デフォルトの名無しさん (ワッチョイ 5abd-brDT)
2020/07/15(水) 07:31:51.88ID:e63KSG0L0 再計算をオフにしていても、VlookupとかIndex/Matchで参照されているセルを削除すると初回だけ滅茶苦茶重くなる
二回目からはアンドゥしようが削除しようが一瞬になる
この初回も重くならないようにしたいんですけど、初回だけどこかで再計算か何かが裏で動いてるんでしょうか?
二回目からはアンドゥしようが削除しようが一瞬になる
この初回も重くならないようにしたいんですけど、初回だけどこかで再計算か何かが裏で動いてるんでしょうか?
445デフォルトの名無しさん (ブーイモ MMa1-+2iy)
2020/07/15(水) 07:50:23.17ID:XJ3hJcChM プリンタに接続してるんじゃね?
446デフォルトの名無しさん (ワッチョイ fabc-3crd)
2020/07/15(水) 08:49:05.20ID:vPDzR3td0 記念パピコ
447デフォルトの名無しさん (アウアウエー Sa02-l+/r)
2020/07/15(水) 09:01:25.32ID:yrzZGj8Ca ちゅーちゅーちゅぶりらチュパカブラー
448デフォルトの名無しさん (アウアウウー Sa39-CYJA)
2020/07/15(水) 17:34:47.36ID:vYR4+hKTa テーブルの特定列に入力されている値から選択できるドロップダウンリストを作りたいです
【要望】
・重複なし
・(できれば)空白は除く
【要望】
・重複なし
・(できれば)空白は除く
449デフォルトの名無しさん (ワッチョイ 768e-3Ffi)
2020/07/15(水) 17:39:29.54ID:yeW9Dlh/0450デフォルトの名無しさん (アウアウウー Sa39-o0Sj)
2020/07/15(水) 17:39:30.37ID:mQ5xmDA6a >>444
キャッシュのなら場合そういう動作が正常
キャッシュのなら場合そういう動作が正常
451デフォルトの名無しさん (ワントンキン MMea-XQYI)
2020/07/15(水) 19:30:17.20ID:FYD4rmMFM >>448
これがゆとり世代だ
これがゆとり世代だ
452デフォルトの名無しさん (アウウィフ FF39-CYJA)
2020/07/15(水) 20:33:22.18ID:1MtMgQ04F 質問してるじゃん
俺は答えられないけど
俺は答えられないけど
453デフォルトの名無しさん (ワッチョイ 05f9-eubO)
2020/07/15(水) 21:01:28.16ID:XJthZBxP0 「作りたいです」という決意表明だろ?
そう言えば誰かが勝手に手助けしてくれると思ってるのかね。
あ、本人かよ。
そう言えば誰かが勝手に手助けしてくれると思ってるのかね。
あ、本人かよ。
454デフォルトの名無しさん (ワッチョイ 0d01-aTVc)
2020/07/15(水) 21:25:35.44ID:sBHz+ETb0 平成生まれと昭和生まれは少々使用する言語が違う。
同じように日本語とは言うけれど。
同じように日本語とは言うけれど。
455デフォルトの名無しさん (ワンミングク MMea-XQYI)
2020/07/15(水) 21:35:02.16ID:8IhCO+GMM ゆとり世代は誰かが助けてくれて当然と思っているからな
456デフォルトの名無しさん (ワッチョイ 0d01-aTVc)
2020/07/15(水) 21:38:36.33ID:sBHz+ETb0 そこら辺は見た目の影響も大きいんだよな。
イケメンだったり可愛かったりすると、助けてもらえるのが当たり前で生きてる。
一方、ちょっと残念な感じだと、助けてもらえることが無く生きてる。
そこら辺の感じ方が違うのは当然なんだよね。
イケメンだったり可愛かったりすると、助けてもらえるのが当たり前で生きてる。
一方、ちょっと残念な感じだと、助けてもらえることが無く生きてる。
そこら辺の感じ方が違うのは当然なんだよね。
457デフォルトの名無しさん (アウアウウー Sa39-o0Sj)
2020/07/15(水) 22:18:05.17ID:onU8sBQ+a 俺じゃない誰かが助けてくれるんじゃね
458デフォルトの名無しさん (ワッチョイ dab5-t9FD)
2020/07/15(水) 22:44:18.56ID:ovUS+LpM0 覚えてものにしようと断固たる決意でマクロを完成させたけど
最初の方に組んだプロシージャを今見てもほとんど覚えてないわ
メンテナンスだけはできるようにコメントつけてあるけど
これがネットで拾い集めて基礎を学ばない相変わらずの俺のダメスタイル
最初の方に組んだプロシージャを今見てもほとんど覚えてないわ
メンテナンスだけはできるようにコメントつけてあるけど
これがネットで拾い集めて基礎を学ばない相変わらずの俺のダメスタイル
459デフォルトの名無しさん (ワッチョイ 7663-NRU3)
2020/07/15(水) 23:23:50.74ID:xZi/KI4S0 コメント残してるだけだいぶマシ
460デフォルトの名無しさん (ドコグロ MM0d-HVEE)
2020/07/16(木) 00:53:10.42ID:9MD/+BL5M 個数や最終行などよく使う変数名は今後の為に統一させたほうがいいな
その時の気分でいろいろと変えると後で意味不明になる
その時の気分でいろいろと変えると後で意味不明になる
461デフォルトの名無しさん (ワッチョイ 89da-YsWi)
2020/07/16(木) 02:52:22.64ID:OfRWrGue0 古いソースをコピペするからそうなる
462デフォルトの名無しさん (ワッチョイ ae68-YsWi)
2020/07/16(木) 09:14:27.30ID:PzZafv3e0 そして統一後気が変わって全て置換か
463デフォルトの名無しさん (ワッチョイ 717c-R8z5)
2020/07/16(木) 09:39:51.11ID:6lIeM5zt0 何の変数かコメント付けるだけで十分では
464デフォルトの名無しさん (ワッチョイ 89cc-aTVc)
2020/07/16(木) 11:51:40.64ID:iXWxOn5X0 同じフォルダ内の"取引実績"ブックの"関東地区"シートのA列・B列・C列・J列・L列・AD列の
それぞれ2行目から最下行までを配列に入れる方法を教えてください
Workbooks.Open ThisWorkbook.Path & "\取引実績", ReadOnly:=True
i = Sheets("関東地区").Cells(Rows.Count,1).End(xlUp).Row
ReDim SiresakiArray(i -1, 6) As Variant
'代入するのはA,B,C,J,L,AD列のみ
SiresakiArray() = Range("A2:??????
ActiveWindow.Close
それぞれ2行目から最下行までを配列に入れる方法を教えてください
Workbooks.Open ThisWorkbook.Path & "\取引実績", ReadOnly:=True
i = Sheets("関東地区").Cells(Rows.Count,1).End(xlUp).Row
ReDim SiresakiArray(i -1, 6) As Variant
'代入するのはA,B,C,J,L,AD列のみ
SiresakiArray() = Range("A2:??????
ActiveWindow.Close
465デフォルトの名無しさん (オッペケ Sr75-mKd1)
2020/07/16(木) 12:20:55.35ID:Bld7disAr いらん列を消せば?
466デフォルトの名無しさん (オイコラミネオ MMad-u33l)
2020/07/16(木) 12:29:13.40ID:GzNgEuWKM みんなvbaどうやって勉強してるの?
しっかり参考書とか買って、じっくり?
ちなみに自分は>>458に近いスタイル
必要に迫られたらネットで検索して、ちょっと弄ってって感じ
だからいつまでたっても上達しない・・・
しっかり参考書とか買って、じっくり?
ちなみに自分は>>458に近いスタイル
必要に迫られたらネットで検索して、ちょっと弄ってって感じ
だからいつまでたっても上達しない・・・
467デフォルトの名無しさん (オッペケ Sr75-mKd1)
2020/07/16(木) 12:41:43.01ID:Bld7disAr 消したらrange("a2").resize(i,6)
468デフォルトの名無しさん (ワッチョイ 717c-R8z5)
2020/07/16(木) 12:45:12.35ID:6lIeM5zt0469デフォルトの名無しさん (ブーイモ MMa1-t9FD)
2020/07/16(木) 13:00:26.82ID:jRyYUilTM これできるようにしてくれない?
これって自動でならない?
職場の糞どもの質問は完全に無視してる
テメーの昼休憩にずっと触ってるスマホで調べりゃ出てくるだろ
話しかけんな
これって自動でならない?
職場の糞どもの質問は完全に無視してる
テメーの昼休憩にずっと触ってるスマホで調べりゃ出てくるだろ
話しかけんな
470デフォルトの名無しさん (ワッチョイ ae68-YsWi)
2020/07/16(木) 13:38:13.07ID:PzZafv3e0 その人が楽するためなら何もしないな
あえて普段はどうやってるか聞いてみて嫌な顔一つしない感じならやる
あえて普段はどうやってるか聞いてみて嫌な顔一つしない感じならやる
471デフォルトの名無しさん (ワッチョイ ee8c-aTVc)
2020/07/16(木) 14:52:54.75ID:2egBYvX50 >>464
Sub hoge1()
Dim aa As Variant
aa = Range("a1:c3,e1:f3")
'結果:a1:c3までしか入らない。なるほどね。
End Sub
Sub hoge2()
i = Cells(Rows.Count, 1).End(xlUp).Row
ReDim siresakiarray(i - 1, 6) As Variant
retsu = Array("A", "B", "C", "J", "L", "AD")
For iic = 0 To UBound(retsu)
For iir = 2 To i
siresakiarray(iir - 2, iic) = Cells(iir, retsu(iic))
Next
Next
'
Worksheets.Add
Range("a1:m999") = siresakiarray
End Sub
一つずつ入れるならザックリこんな感じのロジックで。
他の方法として新しいシートにシートコピーして列を消して配列に挿入の方が
効率いいのかも どうだろう
Sub hoge1()
Dim aa As Variant
aa = Range("a1:c3,e1:f3")
'結果:a1:c3までしか入らない。なるほどね。
End Sub
Sub hoge2()
i = Cells(Rows.Count, 1).End(xlUp).Row
ReDim siresakiarray(i - 1, 6) As Variant
retsu = Array("A", "B", "C", "J", "L", "AD")
For iic = 0 To UBound(retsu)
For iir = 2 To i
siresakiarray(iir - 2, iic) = Cells(iir, retsu(iic))
Next
Next
'
Worksheets.Add
Range("a1:m999") = siresakiarray
End Sub
一つずつ入れるならザックリこんな感じのロジックで。
他の方法として新しいシートにシートコピーして列を消して配列に挿入の方が
効率いいのかも どうだろう
472デフォルトの名無しさん (ワッチョイ dab5-t9FD)
2020/07/17(金) 00:37:14.96ID:27Ma2AbZ0 少し組んで改善するとまぁ評価はされるんだけど
他の人後でメンテナンスできるよな?
とか
マクロが壊れる心配ないよな?とか
テンプレートのように言われるけど知るかよ
読み取り専用で配布してるしプロシージャ弄れないようにしてあるし壊れねーっつーの
パスワードかけてないマスター版も社内サーバーに置いてあるから
いじりたきゃ学べや
あと配布した途端楽になったらその業務ばっかりやろうとするおっさん見苦しくてむかつく
配って損したわ
他の人後でメンテナンスできるよな?
とか
マクロが壊れる心配ないよな?とか
テンプレートのように言われるけど知るかよ
読み取り専用で配布してるしプロシージャ弄れないようにしてあるし壊れねーっつーの
パスワードかけてないマスター版も社内サーバーに置いてあるから
いじりたきゃ学べや
あと配布した途端楽になったらその業務ばっかりやろうとするおっさん見苦しくてむかつく
配って損したわ
473デフォルトの名無しさん (ワッチョイ b602-u3Vd)
2020/07/17(金) 08:36:30.29ID:KHrOLv580 あれ?ここ日記帳だっけ?
474デフォルトの名無しさん (ワッチョイ 7663-NRU3)
2020/07/17(金) 09:55:37.13ID:q+bHJv+q0 みんなの日記帳だよ
君も自由に書き込んでいいよ
君も自由に書き込んでいいよ
475464 (ワッチョイ 89cc-sTnA)
2020/07/17(金) 11:03:50.73ID:lcXPd8bd0 >>465,468,471
ありがとうございます。列を削除して取り込みます。
ありがとうございます。列を削除して取り込みます。
476デフォルトの名無しさん (ワッチョイ 89cc-V+qA)
2020/07/17(金) 11:46:31.69ID:lcXPd8bd0 配列 ary(1,6)に年月日(2020/7/18)が入っていて、配列ary(1,7)には何らかの値が入っていることがあります
ary(1,6)を20日締で起算して、ary2(1,1)に"20_7"のような文字列を返す式を教えてください。
またary(1,7)に値が入っていれば翌月にずれるようにしたいです
ary(1,6)="2020/7/18"
ary(1,7)= ""
の場合ary2(1,1)="20_7"
ary(1,6)="2020/7/21"
ary(1,7)= ""
の場合ary2(1,1)="20_8"
ary(1,6)="2020/7/18"
ary(1,7)= "値"
の場合ary2(1,1)="20_8"
ary(1,6)="2020/12/20"
ary(1,7)= "1"
の場合ary2(1,1)="21_1"
ary(1,6)を20日締で起算して、ary2(1,1)に"20_7"のような文字列を返す式を教えてください。
またary(1,7)に値が入っていれば翌月にずれるようにしたいです
ary(1,6)="2020/7/18"
ary(1,7)= ""
の場合ary2(1,1)="20_7"
ary(1,6)="2020/7/21"
ary(1,7)= ""
の場合ary2(1,1)="20_8"
ary(1,6)="2020/7/18"
ary(1,7)= "値"
の場合ary2(1,1)="20_8"
ary(1,6)="2020/12/20"
ary(1,7)= "1"
の場合ary2(1,1)="21_1"
477デフォルトの名無しさん (ワッチョイ 8949-cgHx)
2020/07/17(金) 12:02:43.77ID:0sNlDakf0 型はなんなの?
くそコードでもいいからひとつずつ考えて作ってみたの?
くそコードでもいいからひとつずつ考えて作ってみたの?
478デフォルトの名無しさん (ワッチョイ 71ba-+Pas)
2020/07/17(金) 12:07:44.33ID:NYWT4Zhl0 の場合、とか言ってるんならif使えばいいだけだろ
アホなのか
アホなのか
479477 (ワッチョイ 8949-cgHx)
2020/07/17(金) 12:46:43.52ID:0sNlDakf0480476 (ワッチョイ 89cc-V+qA)
2020/07/17(金) 15:02:49.46ID:lcXPd8bd0 >>479
完成しました。ありがとうございました
dt = CDate(ary(1,6))
If Cint(Format(dt,"d")) > 20 Then '20日以降か
dt = DateAdd("m",1,dt)
End if
'空欄でなければさらに1カ月繰り上げる
If AfuriArray(cnt-1,26) <> "" Then
Else
dt = DateAdd("m",1,dt)
End If
ary(2,1) = Right(Format(dt, "yyyy"),2)&"_"& Format(dt,"m")
完成しました。ありがとうございました
dt = CDate(ary(1,6))
If Cint(Format(dt,"d")) > 20 Then '20日以降か
dt = DateAdd("m",1,dt)
End if
'空欄でなければさらに1カ月繰り上げる
If AfuriArray(cnt-1,26) <> "" Then
Else
dt = DateAdd("m",1,dt)
End If
ary(2,1) = Right(Format(dt, "yyyy"),2)&"_"& Format(dt,"m")
481デフォルトの名無しさん (ワッチョイ dab5-t9FD)
2020/07/17(金) 21:27:08.31ID:27Ma2AbZ0 来年の役員報告の課の改善発表の内容に
俺のマクロで作る事が既に組み込まれてるんだが
そもそもそこまでスキルないし年上のもっと給料もらってる奴にやらせろやカスが
俺のマクロで作る事が既に組み込まれてるんだが
そもそもそこまでスキルないし年上のもっと給料もらってる奴にやらせろやカスが
482デフォルトの名無しさん (アウアウウー Sa39-o0Sj)
2020/07/17(金) 23:08:06.59ID:Bh4mGSGka って言えばいいじゃん
483デフォルトの名無しさん (ワッチョイ 95da-YsWi)
2020/07/18(土) 15:07:16.47ID:aMbjCCwU0 日本語環境でmiLANG_JAPANESEを指定してもbad languageのエラーが出るのは何故?
484デフォルトの名無しさん (ワッチョイ 752d-odhS)
2020/07/18(土) 16:11:19.98ID:gXGI8VY40 敗戦国だから
485デフォルトの名無しさん (ワッチョイ 89cc-sTnA)
2020/07/18(土) 18:26:41.44ID:6ntZQZs40 sheet"s1"にFunctionで処理したary2を貼り付けたいのですが、処理前のary1が貼り付けられます
Function後のary2を貼り付けるにはどうすればよいですか?
Sub test()
Dim endrow, r As Long
endrow = Sheets("rui").Cells(Rows.Count, 1).End(xlUp).Row
ReDim ary1(endrow - 1, 6)
ary1() = Sheets("rui").Range("A2:F" & endrow).Value
Sheets("sh1").Range("A2:F" & endrow) = ary2(ary1())
End Sub
Function ary2(ary1() As Variant) As Variant()
Dim en, r As Long
en = UBound(ary1())
For r = 1 To en
ary1(r, 1) = Application.Asc(ary1(r, 1))
ary1(r, 1) = StrConv(ary1(r, 1), vbUpperCase)
ary1(r, 1) = Replace(ary1(r, 1), " ", "")
Next r
End Function
Function後のary2を貼り付けるにはどうすればよいですか?
Sub test()
Dim endrow, r As Long
endrow = Sheets("rui").Cells(Rows.Count, 1).End(xlUp).Row
ReDim ary1(endrow - 1, 6)
ary1() = Sheets("rui").Range("A2:F" & endrow).Value
Sheets("sh1").Range("A2:F" & endrow) = ary2(ary1())
End Sub
Function ary2(ary1() As Variant) As Variant()
Dim en, r As Long
en = UBound(ary1())
For r = 1 To en
ary1(r, 1) = Application.Asc(ary1(r, 1))
ary1(r, 1) = StrConv(ary1(r, 1), vbUpperCase)
ary1(r, 1) = Replace(ary1(r, 1), " ", "")
Next r
End Function
486デフォルトの名無しさん (アウアウエー Sa02-l+/r)
2020/07/18(土) 19:22:36.82ID:BZh66Ti/a >>485
そりゃあ貴方、ary2は関数ですと自分で宣言してるもの。
しかもary1に代入してますやんかー
プログラムは命令通りに動作してるだけじゃん。
ary2の配列を準備して処理してから
そのary2の内容をシートに展開すようにプログラムしなきゃ
そりゃあ貴方、ary2は関数ですと自分で宣言してるもの。
しかもary1に代入してますやんかー
プログラムは命令通りに動作してるだけじゃん。
ary2の配列を準備して処理してから
そのary2の内容をシートに展開すようにプログラムしなきゃ
487485 (ワッチョイ 89cc-sTnA)
2020/07/18(土) 20:24:50.23ID:6ntZQZs40 >>486
ありがとうございますFuntionの使い方を誤解していましたm(_ _)m
ありがとうございますFuntionの使い方を誤解していましたm(_ _)m
488デフォルトの名無しさん (ワッチョイ 89da-YsWi)
2020/07/18(土) 22:33:50.97ID:6aEbh+KL0 Function大魔王
489デフォルトの名無しさん (ドコグロ MM0d-HVEE)
2020/07/18(土) 22:50:59.73ID:GbMN9IfrM490デフォルトの名無しさん (ドコグロ MMc2-brDT)
2020/07/18(土) 23:52:10.32ID:UVKbM6jvM >>485
単純化した一つの正解の型
Sub test()
Dim ary() As String
ary() = fnc
MsgBox ary(1)
End Sub
Function fnc() As String()
Dim ary(1) As String
ary(1) = "a"
fnc = ary()
End Function
単純化した一つの正解の型
Sub test()
Dim ary() As String
ary() = fnc
MsgBox ary(1)
End Sub
Function fnc() As String()
Dim ary(1) As String
ary(1) = "a"
fnc = ary()
End Function
491デフォルトの名無しさん (ワッチョイ 7d40-srtg)
2020/07/19(日) 01:27:51.35ID:YQjQ9IMi0 配列の扱いや参照渡し以前の問題では・・・
492デフォルトの名無しさん (ワッチョイ 768e-3Ffi)
2020/07/19(日) 02:51:36.02ID:b8b+mHAS0 結局、馬鹿には無理なんだよ
493デフォルトの名無しさん (ワッチョイ fabc-+TcB)
2020/07/19(日) 02:54:31.21ID:MOwnlnDY0 joinして受け渡ししてsplitで復元がシンプルでわかりやすいんじゃね?
494デフォルトの名無しさん (ワッチョイ 694e-XNKV)
2020/07/19(日) 06:42:33.41ID:xggXZiaY0 もう企業ユーザーにはOffice Script解放されてるみたいですが試された方、使用感どんなもんですか?
495デフォルトの名無しさん (ワッチョイ 89da-YsWi)
2020/07/19(日) 08:30:43.83ID:du465xO70 調査してる最中じゃねーの、あわてんな
496デフォルトの名無しさん (スッップ Sdfa-Kk1B)
2020/07/19(日) 14:09:46.91ID:4shkrYfWd >>485
ary2の宣言部分は正しい。
でもary2の内部でary2はどうなったの?
何もしてないよね。
ary2の内部でary2はこうなりましたって書かないと宣言した時点の空の配列が返るのが当然。
つまりary2のFunctionの最後にary2=の文が必要。
ary2の宣言部分は正しい。
でもary2の内部でary2はどうなったの?
何もしてないよね。
ary2の内部でary2はこうなりましたって書かないと宣言した時点の空の配列が返るのが当然。
つまりary2のFunctionの最後にary2=の文が必要。
497デフォルトの名無しさん (スッップ Sdfa-Kk1B)
2020/07/19(日) 14:11:26.48ID:4shkrYfWd >>490のfnc=any()の文が正にそれ。
498デフォルトの名無しさん (アウアウウー Sa39-o0Sj)
2020/07/20(月) 12:06:47.51ID:Dkhdkwhma excelなんだから配列はセルにいれときゃいいんじゃね
499デフォルトの名無しさん (ブーイモ MM99-/wEX)
2020/07/20(月) 18:29:09.95ID:3yLiDe7EM 速度気にしないなら
500デフォルトの名無しさん (ワッチョイ 89da-YsWi)
2020/07/20(月) 23:22:10.32ID:87nc/Vc+0 全然気にしない
501デフォルトの名無しさん (ワッチョイ 95da-YsWi)
2020/07/20(月) 23:52:01.41ID:3H73W2vZ0 配列は大量に入れるとメモリ不足になるのが嫌。
値以外のプロパティ持ってるセルの方がよっぽどメモリ喰うだろって思うけど、
仕様だから仕方がない。
値以外のプロパティ持ってるセルの方がよっぽどメモリ喰うだろって思うけど、
仕様だから仕方がない。
502デフォルトの名無しさん (スッップ Sdfa-Kk1B)
2020/07/21(火) 07:20:28.10ID:s4f7WPjJd メモリ不足になるほど大量に入れることなんて殆ど無い。
不足するのは別の理由だと思うが。
不足するのは別の理由だと思うが。
503デフォルトの名無しさん (ワッチョイ 69ce-zSg9)
2020/07/21(火) 10:31:44.78ID:8QcWJiTk0 10万行のCSVとか配列で処理したくなるけどメモリ不足になるんで仕方なくワークシートに入れてる
504デフォルトの名無しさん (ドコグロ MMa5-ByeJ)
2020/07/21(火) 11:09:54.82ID:GBbtTx0BM VBAは過去のしがらみが多いので64bit Excelでも変な制限があってびっくりする
最近経験したのはユーザー定義型の中の配列サイズ
Type T
A(33000) As Integer
End Type
Sub S
Dim X As T
End
ってやるだけで「動的なローカル変数が多すぎます」って言われる
A(32000) As Integer
なら問題ない
最近経験したのはユーザー定義型の中の配列サイズ
Type T
A(33000) As Integer
End Type
Sub S
Dim X As T
End
ってやるだけで「動的なローカル変数が多すぎます」って言われる
A(32000) As Integer
なら問題ない
505デフォルトの名無しさん (アウアウウー Sa39-o0Sj)
2020/07/21(火) 11:43:12.61ID:uXgtcpNna intの最大の32767だろうね
506デフォルトの名無しさん (アメ MMa9-XNKV)
2020/07/21(火) 12:27:55.57ID:Z8jTNyVcM オフィススクリプト試したい…
個人ユーザーにも解放してくれ…
個人ユーザーにも解放してくれ…
507デフォルトの名無しさん (スププ Sdfa-T0G+)
2020/07/21(火) 13:35:34.68ID:420tjBmwd csvを文字列形式のセルに取り込む時、値がない場合は""とemptyどっちにしておくべき?
508デフォルトの名無しさん (ワッチョイ 7df1-+aB8)
2020/07/21(火) 14:38:12.66ID:zc+r4po80 office田中の人が顔出しでYoutubeはじめたらしいが
おじいちゃんで偉そう。
実世界なら関わりたくないタイプ。
おじいちゃんで偉そう。
実世界なら関わりたくないタイプ。
509デフォルトの名無しさん (ワッチョイ 7663-NRU3)
2020/07/21(火) 19:47:20.41ID:g0ULgQg00 ネット上でも関わり合いになりたくないタイプだろ
510デフォルトの名無しさん (ワッチョイ 05e5-ePvM)
2020/07/21(火) 21:24:07.75ID:fmBf+klc0 自分の参考になるとこだけ聞いときゃいいんじゃないの?
その他アレコレ言うのはどうかと思うぞ
その他アレコレ言うのはどうかと思うぞ
511デフォルトの名無しさん (アウアウエー Sa02-rGUB)
2020/07/21(火) 22:50:12.29ID:nbzaQebba >>503
1レコードずつシーケンシャルに処理できないの?
1レコードずつシーケンシャルに処理できないの?
512デフォルトの名無しさん (ワッチョイ 6949-YsWi)
2020/07/21(火) 23:00:00.64ID:q3mQwKOX0 複数の同じ形式で入力されたブックをマージしたんですが、テキストを連結する場合に区切り文字を「|」にしました
(「|」は入力時には使用していません)
ファイルが3つ(A.xlsx,B.xlsx,C.xlsx)、それぞれのブックの値をa,b,c(テキストのみ、数値なし)、セルの値は
空白可だとすると、マージ後のあるセルの文字列は
a|| a|b| a||c |b| |b|c ||c a|b|c |||
のいづれかになりますが、このうち左端及び右端の「|」は削除、連続する「|」は「|」ひとつに統合、すべて「|」の
場合はセルを空白にするにはどうすればいいでしょうか?余分なスペースを削るTrimのようなことを任意の文字でしたい、
という趣旨です。処理後は以下のようにしたいです
a a|b a|c b b|c c a|b|c 空白のセル
一旦「|」をスペースに置換してTrim関数で余分なスペースを削ってから再度スペースを「|」に置換すればできるんですが、
もうちょっとスマートな方法があるのかなということと、意図して連続したスペースを入力していたらTrimで消えてしまうので
そういった場合に備える意味も含めていい方法があれば教えてください
(「|」は入力時には使用していません)
ファイルが3つ(A.xlsx,B.xlsx,C.xlsx)、それぞれのブックの値をa,b,c(テキストのみ、数値なし)、セルの値は
空白可だとすると、マージ後のあるセルの文字列は
a|| a|b| a||c |b| |b|c ||c a|b|c |||
のいづれかになりますが、このうち左端及び右端の「|」は削除、連続する「|」は「|」ひとつに統合、すべて「|」の
場合はセルを空白にするにはどうすればいいでしょうか?余分なスペースを削るTrimのようなことを任意の文字でしたい、
という趣旨です。処理後は以下のようにしたいです
a a|b a|c b b|c c a|b|c 空白のセル
一旦「|」をスペースに置換してTrim関数で余分なスペースを削ってから再度スペースを「|」に置換すればできるんですが、
もうちょっとスマートな方法があるのかなということと、意図して連続したスペースを入力していたらTrimで消えてしまうので
そういった場合に備える意味も含めていい方法があれば教えてください
513デフォルトの名無しさん (ワッチョイ ee8c-sTnA)
2020/07/21(火) 23:08:39.79ID:aJyp0F9S0 Excel2019です
外部CSVをpowerqueryで取り込んで整形したのちシートに貼り付けてあるテーブルがありまして、
ファイルを立ち上げる度にこのテーブルを自動で更新させるところまではできました。
この後、更新完了後に自動的にCSVファイルを保存、終了させようと考えているのですが
更新完了のイベントがどうもわかりません(見当たりません)。
アドバイスをいただけないでしょうか
よろしくおねがいします。
外部CSVをpowerqueryで取り込んで整形したのちシートに貼り付けてあるテーブルがありまして、
ファイルを立ち上げる度にこのテーブルを自動で更新させるところまではできました。
この後、更新完了後に自動的にCSVファイルを保存、終了させようと考えているのですが
更新完了のイベントがどうもわかりません(見当たりません)。
アドバイスをいただけないでしょうか
よろしくおねがいします。
514デフォルトの名無しさん (スププ Sdfa-T0G+)
2020/07/21(火) 23:15:37.99ID:rncf75Mgd >>513
スマートさは知らないが正規表現で置換するとか
スマートさは知らないが正規表現で置換するとか
515デフォルトの名無しさん (スププ Sdfa-T0G+)
2020/07/21(火) 23:16:26.19ID:rncf75Mgd 間違えた
>>512宛
>>512宛
516デフォルトの名無しさん (ワッチョイ 812c-WQpp)
2020/07/22(水) 01:35:45.12ID:2/9nnKBr0517デフォルトの名無しさん (ワッチョイ 8b63-UE+f)
2020/07/22(水) 02:45:59.48ID:V5aeR2xw0518デフォルトの名無しさん (ワッチョイ 29f1-4Yr4)
2020/07/22(水) 03:16:01.58ID:hQWVf2dN0 >>517
v(^^)/~
v(^^)/~
519デフォルトの名無しさん (ワッチョイ 41ce-RnSF)
2020/07/22(水) 03:56:58.93ID:F4KuFXOj0 >>511
ファイル操作はセル操作以上に重いからできるだけまとめた方が速くなる
ファイル操作はセル操作以上に重いからできるだけまとめた方が速くなる
520デフォルトの名無しさん (アウアウエー Sae3-UreN)
2020/07/22(水) 08:03:26.55ID:eX+7X9u9a >>519
そう?
そう?
521デフォルトの名無しさん (スッップ Sd33-Spa3)
2020/07/22(水) 08:33:57.99ID:6gIpTQrUd522デフォルトの名無しさん (スッップ Sd33-Spa3)
2020/07/22(水) 08:40:56.01ID:6gIpTQrUd523デフォルトの名無しさん (ワッチョイ 0963-VaRO)
2020/07/22(水) 16:49:33.87ID:aRPEdkhK0 ExcelWebAddinっていうのを使ってWebフォームの入力を自動化しようとしていますが、ラジオボタンにチェックを入れるにはどのようなコマンドを入力すれば良いのでしょうか?
524デフォルトの名無しさん (ワッチョイ 13b5-7d+j)
2020/07/22(水) 17:06:35.37ID:F072B1Mr0 1人だけマクロ作って超楽に終わらせてるのがバレたわ
改善提案で出して8000円賞やるから他の奴らにも配って共有化してくれと言われた
まぁ仕方ない
でもまぁマクロはこっそり作って自分で運用するに限るね
次にそういうのできたら発表で使ってくれだと
改善提案で出して8000円賞やるから他の奴らにも配って共有化してくれと言われた
まぁ仕方ない
でもまぁマクロはこっそり作って自分で運用するに限るね
次にそういうのできたら発表で使ってくれだと
525デフォルトの名無しさん (ワッチョイ 8b63-fOmF)
2020/07/22(水) 17:17:55.78ID:nFYyDION0 こっそり使わないと
マクロ適用できないように仕変されるよ
マクロ適用できないように仕変されるよ
526デフォルトの名無しさん (ワッチョイ 13b5-7d+j)
2020/07/22(水) 17:25:20.04ID:F072B1Mr0 Excelを使った業務が95%くらいの職場だから問題ない
逆に使いにくいwordを俺が改善で駆逐していってたが今回のはみんなに配りたくなかったけどまぁ仕方ないか…
在宅の日なんて他の人が半日かかるのを5分だったのに…
逆に使いにくいwordを俺が改善で駆逐していってたが今回のはみんなに配りたくなかったけどまぁ仕方ないか…
在宅の日なんて他の人が半日かかるのを5分だったのに…
527デフォルトの名無しさん (ワッチョイ 5173-Tayy)
2020/07/22(水) 17:55:11.21ID:vvOOySn70 >>524
そういうのさあ、共有してあげてもいいけど、共有すると知的障害の人が仕様の異なるものに適用して失敗して文句言ってくるのが目に見えてるんだよね
だからといっていろんなケース想定してプログラミングするのはアホらしいし
そういうのさあ、共有してあげてもいいけど、共有すると知的障害の人が仕様の異なるものに適用して失敗して文句言ってくるのが目に見えてるんだよね
だからといっていろんなケース想定してプログラミングするのはアホらしいし
528デフォルトの名無しさん (ワッチョイ 7b68-5TCi)
2020/07/22(水) 18:47:51.04ID:urXipo8c0 むしろあえて自分用に最適化して「共通部分以外はできません」でもいい
529デフォルトの名無しさん (ワッチョイ 8b63-fOmF)
2020/07/22(水) 19:56:15.37ID:nFYyDION0 いつのころからかマクロを忌み嫌い極限までVLOOKUPで済ませるようになった
530デフォルトの名無しさん (ワッチョイ 414e-BRR5)
2020/07/22(水) 19:58:49.72ID:ILXZvJ+B0 index/matchは使わないのw
531デフォルトの名無しさん (ワッチョイ d1e6-l24t)
2020/07/22(水) 20:03:08.77ID:SXXgaLVH0 オレオレ証明書でスムーズに使えるかと思ったら
証明書付けると逆に使えなくなったり
嫌がらせが半端じゃなかったしな
今では設定がどこにあるのかすら分からん
証明書付けると逆に使えなくなったり
嫌がらせが半端じゃなかったしな
今では設定がどこにあるのかすら分からん
532デフォルトの名無しさん (ワッチョイ 41ce-RnSF)
2020/07/22(水) 21:55:35.93ID:F4KuFXOj0 XPの頃はオレオレ証明書を作ってたけど、そういや今は作らなくても動いてるな
何がどう変わったのか把握してないわ
何がどう変わったのか把握してないわ
533デフォルトの名無しさん (アメ MMfd-BRR5)
2020/07/22(水) 22:08:08.79ID:Fc7dRB3XM 今ならxlookupがある。
あと関係ないけど、スプシのquery関数輸入してくんないかなぁ…あんなのに特許とか無いでしょ?
あと関係ないけど、スプシのquery関数輸入してくんないかなぁ…あんなのに特許とか無いでしょ?
534デフォルトの名無しさん (ワッチョイ 8b63-fOmF)
2020/07/23(木) 02:13:32.09ID:Iky/Pkwz0 あるだろう
使われてないけど
使われてないけど
535デフォルトの名無しさん (ワッチョイ 9909-RtpQ)
2020/07/23(木) 02:31:09.52ID:KC5IdKq10 シートのコード名をマクロから変更することはできますか?
536デフォルトの名無しさん (ワッチョイ d1a2-K9d7)
2020/07/23(木) 02:32:42.56ID:vlSabEZu0 できるわけないだろ
537デフォルトの名無しさん (ワッチョイ 9909-RtpQ)
2020/07/23(木) 02:42:45.18ID:KC5IdKq10 まじか!
538デフォルトの名無しさん (アウアウエー Sae3-UreN)
2020/07/23(木) 02:44:48.35ID:hi69YBSQa シートのコード名ってなんだ?
539デフォルトの名無しさん (ワッチョイ d1a2-K9d7)
2020/07/23(木) 02:46:02.22ID:vlSabEZu0 プロシージャ名じゃね
知らんけど
知らんけど
540デフォルトの名無しさん (アウアウエー Sae3-UreN)
2020/07/23(木) 02:50:40.32ID:hi69YBSQa 設定を変更する必要はあるけど、VBproject を編集できるかもね
541デフォルトの名無しさん (オッペケ Sr85-LLbQ)
2020/07/23(木) 03:09:52.56ID:u9f9fzuBr542デフォルトの名無しさん (ワッチョイ 2992-HEZ1)
2020/07/23(木) 03:16:02.13ID:togpUAVc0543デフォルトの名無しさん (ワッチョイ 9909-RtpQ)
2020/07/23(木) 03:21:02.63ID:KC5IdKq10544デフォルトの名無しさん (スッップ Sd33-Spa3)
2020/07/23(木) 07:12:45.90ID:i+261XKMd >>543
何で変えたいの?
何で変えたいの?
545デフォルトの名無しさん (アウアウエー Sae3-Ar/h)
2020/07/23(木) 07:16:32.96ID:kdPZXO8Ra 世の中が気に入らないから
546デフォルトの名無しさん (アウアウウー Sa5d-2pPP)
2020/07/23(木) 07:23:13.06ID:Rh3868Eja 手入力でやれよ
547デフォルトの名無しさん (ワッチョイ 7bf7-m+4H)
2020/07/23(木) 07:35:31.90ID:LqjC2Hh/0 sendkeyでなんとか
548デフォルトの名無しさん (ワッチョイ 4149-5TCi)
2020/07/23(木) 10:55:22.67ID:zKEjLf2X0 >>517
ありがとうございます、休み明けに試してみます
ありがとうございます、休み明けに試してみます
549デフォルトの名無しさん (ワッチョイ 4901-It4W)
2020/07/23(木) 11:56:15.16ID:5yzO6ql90 Android版のアウトルックが操作方法また変わって、開こうとしたら削除されて、しかも削除済みのフォルダにもない。
どうしたら良いんだこれ。
メール消えてもうた。
どうしたら良いんだこれ。
メール消えてもうた。
550デフォルトの名無しさん (アウアウカー Sa15-Ar/h)
2020/07/23(木) 11:58:48.40ID:qQzwkkHta >>549
スレチ
スレチ
551デフォルトの名無しさん (ワッチョイ 4901-It4W)
2020/07/23(木) 11:59:14.78ID:5yzO6ql90 ロードに1分以上かかるのに、一見、ロードされているように見せかけるのも、問題があるように感じる。
人によっては、本文の無いメールが来たと思う人もいるだろう。
一見して高速にロードされるように見せかけるのは大した技術なんだろうけど、それ、ユーザーを騙すってことだよね?
実際にはクライアント側にデータを保存していないんだから。
人によっては、本文の無いメールが来たと思う人もいるだろう。
一見して高速にロードされるように見せかけるのは大した技術なんだろうけど、それ、ユーザーを騙すってことだよね?
実際にはクライアント側にデータを保存していないんだから。
552デフォルトの名無しさん (ワッチョイ 4901-It4W)
2020/07/23(木) 12:02:50.60ID:5yzO6ql90 高速にロードされるように見せかけているがために、まだデータをダウンロードできていないことをユーザーに知らせることが出来ない。
通信中であることを示すマークを出すと、高速で無いことがバレてしまう。
ここに矛盾を抱えてる。
通信中であることを示すマークを出すと、高速で無いことがバレてしまう。
ここに矛盾を抱えてる。
553デフォルトの名無しさん (ワッチョイ 4901-It4W)
2020/07/23(木) 12:12:38.03ID:5yzO6ql90 しかもアウトルックドットコムはLinuxに慣れてる一般大衆からすると信じがたく重い。
サーバーからダウンロードしていることを隠すなら、高速なLinuxサーバーを使うべきでは?
サーバーからダウンロードしていることを隠すなら、高速なLinuxサーバーを使うべきでは?
554デフォルトの名無しさん (ワッチョイ 4901-It4W)
2020/07/23(木) 12:24:44.89ID:5yzO6ql90 先月まで開く動作だった左にスワイプが削除の動作に代わるって、とんでもない仕様変更だよ。
555デフォルトの名無しさん (ワッチョイ 4901-It4W)
2020/07/23(木) 12:26:28.82ID:5yzO6ql90 しかも、本文がロードされる前の時間帯では、削除済みのフォルダに入らない。
さすがにこれは仕様というよりバグなんじゃないのかな?
さすがにこれは仕様というよりバグなんじゃないのかな?
556デフォルトの名無しさん (ブーイモ MMcb-4Yr4)
2020/07/23(木) 12:31:43.83ID:iL/DIdMFM officeTANAKAのおじいちゃんの動画見てる人いる?
557デフォルトの名無しさん (ワッチョイ 8b8e-TniB)
2020/07/23(木) 13:19:56.66ID:OedHhoi20 >>555
死ね
死ね
558デフォルトの名無しさん (ワッチョイ 41ce-RnSF)
2020/07/23(木) 17:49:45.58ID:XAOqwh8/0559デフォルトの名無しさん (アウアウエー Sae3-Ar/h)
2020/07/23(木) 18:24:47.13ID:otdPxTIka おじいちゃんよりperfect human NAKATAなら見るけど
560デフォルトの名無しさん (ブーイモ MM4d-4Yr4)
2020/07/23(木) 19:47:21.57ID:9f0mDEOaM 中田のは世界史/日本史やってるときはよかったが
範囲を広げすぎて見てるほうも興味ないしやってるほうも専門じゃないからおもしろくない
範囲を広げすぎて見てるほうも興味ないしやってるほうも専門じゃないからおもしろくない
561デフォルトの名無しさん (ワッチョイ fb8c-keh3)
2020/07/23(木) 19:47:32.61ID:XyxsyJax0 このスレは雑談スレで質問はVBAでもビジネスsoft板スレで聞いた方がいいのかな
562デフォルトの名無しさん (ワッチョイ 13b5-7d+j)
2020/07/23(木) 20:23:47.73ID:46il5rmY0 課で全員が共有する色んなExcelのファイルがあるけど
xls→たいがいマクロ組んでないからそのままマクロ組むこともある
xlsm→作成者の作ったのを見て少しだけ弄ることはある
xlsx→手を出さない
xls→たいがいマクロ組んでないからそのままマクロ組むこともある
xlsm→作成者の作ったのを見て少しだけ弄ることはある
xlsx→手を出さない
563デフォルトの名無しさん (ワッチョイ d901-s6lF)
2020/07/23(木) 20:32:21.34ID:jBwCrw170 subってプライベートにしないと何か良くないことあるんですか?
564デフォルトの名無しさん (ブーイモ MM9d-r7DO)
2020/07/23(木) 20:39:15.52ID:FOonXAhZM565デフォルトの名無しさん (ワッチョイ d1e6-RnSF)
2020/07/23(木) 20:40:34.07ID:aUHqAsWY0 >>563
目障りだ。消えろ!
目障りだ。消えろ!
566デフォルトの名無しさん (スッップ Sd33-Spa3)
2020/07/23(木) 20:52:02.29ID:i+261XKMd >>563
プロシージャを沢山作るだろ。
その中にゃちょっとお試しのSub test1()なんてのが作られる。
で、同名のプロシージャとか作ると、色々問題が出る。
プライベートならモジュールが変われば問題無し。
そもそも、面倒くさいからわりと忘れがちだが、ちゃんとスコープや型を考えて作れない人のプログラムは出来も悪いことが多い。
バグも作りがちだね。
プロシージャを沢山作るだろ。
その中にゃちょっとお試しのSub test1()なんてのが作られる。
で、同名のプロシージャとか作ると、色々問題が出る。
プライベートならモジュールが変われば問題無し。
そもそも、面倒くさいからわりと忘れがちだが、ちゃんとスコープや型を考えて作れない人のプログラムは出来も悪いことが多い。
バグも作りがちだね。
567デフォルトの名無しさん (ワッチョイ 7bf7-m+4H)
2020/07/23(木) 20:53:38.12ID:LqjC2Hh/0 ちゃんとクラス作んないとな
568デフォルトの名無しさん (ワッチョイ 2992-HEZ1)
2020/07/23(木) 21:08:16.92ID:togpUAVc0 クラスとかよー分からん
オブジェクト指向の言語やるといいのかな?
オブジェクト指向の言語やるといいのかな?
569デフォルトの名無しさん (ワッチョイ d1a2-K9d7)
2020/07/23(木) 21:14:07.35ID:vlSabEZu0 作らなくても何とかなってきたんだろ、だったら要らないよ。
どうせクラスとかインテリセンスに項目追加するぐらいの効果しかないでしょ。
どうせクラスとかインテリセンスに項目追加するぐらいの効果しかないでしょ。
570デフォルトの名無しさん (ワッチョイ 81da-5TCi)
2020/07/23(木) 22:12:35.10ID:Ybp1dMGc0 >>562
無能自慢はやめとけ
無能自慢はやめとけ
571デフォルトの名無しさん (ワッチョイ 1342-h1M8)
2020/07/23(木) 22:29:15.13ID:lFUaLbQa0 名前はクラスだけどやってることはほぼ構造体だしな
572デフォルトの名無しさん (ワッチョイ d1e6-4qMj)
2020/07/23(木) 22:41:45.26ID:bXbPEMrj0 イベントを持った動的に生成するフォームはクラスでやるしかないのでは
と、思うのだが(´・ω・`)違ったらごめんね
クラスなんか要らない構造体で十分って言ってる奴、知的好奇心足りなさすぎでは
と、思うのだが(´・ω・`)違ったらごめんね
クラスなんか要らない構造体で十分って言ってる奴、知的好奇心足りなさすぎでは
573デフォルトの名無しさん (スッップ Sd33-Spa3)
2020/07/23(木) 23:49:06.55ID:i+261XKMd >>572
VBEにメニュー追加して、メニュー押した時のイベントにはクラスが必要だね。
VBAはクラス使わなくても組める言語だけど、時々クラスがピッタリ来る場合がある。
そういう場合はクラス使った方がメンテナンス性とか後々良いことがある。
VBEにメニュー追加して、メニュー押した時のイベントにはクラスが必要だね。
VBAはクラス使わなくても組める言語だけど、時々クラスがピッタリ来る場合がある。
そういう場合はクラス使った方がメンテナンス性とか後々良いことがある。
574デフォルトの名無しさん (ワッチョイ d9da-5TCi)
2020/07/23(木) 23:54:31.71ID:w5Kgum7s0 ADOとかUIAutomationとか、長くなりそうなのは面倒だからクラス。
575デフォルトの名無しさん (ワッチョイ d901-s6lF)
2020/07/24(金) 07:38:12.69ID:kDVWriuI0 クラスの意味はわかるけど使うメリットがようわからんな
for eachで回せるくらいしか思い浮かばないんだが…
javaチックに全部クラスで作るのもなんか違う気がするし
for eachで回せるくらいしか思い浮かばないんだが…
javaチックに全部クラスで作るのもなんか違う気がするし
576デフォルトの名無しさん (ワッチョイ 1301-KHfa)
2020/07/24(金) 08:16:46.34ID:4h264/iA0 またVBAでクラスの話かよ…
せめてClass_Initializeに引数持てたらな…
せめてClass_Initializeに引数持てたらな…
577デフォルトの名無しさん (ワッチョイ b9da-dPcv)
2020/07/24(金) 08:56:19.08ID:qHYHRNzt0 >>576
'Class_Initialize' イベントはサポートされなくなりました
https://docs.microsoft.com/ja-jp/dotnet/visual-basic/misc/bc42001
オブジェクト指向プログラミング (Visual Basic)
コンストラクター
https://docs.microsoft.com/ja-jp/dotnet/visual-basic/programming-guide/concepts/object-oriented-programming#constructors
'Class_Initialize' イベントはサポートされなくなりました
https://docs.microsoft.com/ja-jp/dotnet/visual-basic/misc/bc42001
オブジェクト指向プログラミング (Visual Basic)
コンストラクター
https://docs.microsoft.com/ja-jp/dotnet/visual-basic/programming-guide/concepts/object-oriented-programming#constructors
578デフォルトの名無しさん (ラクッペペ MMeb-Sn4z)
2020/07/24(金) 09:00:02.69ID:ASBY7bf4M それVBAではなくて本家のVBの話だろ
579デフォルトの名無しさん (ワッチョイ 1301-KHfa)
2020/07/24(金) 10:09:40.26ID:4h264/iA0580デフォルトの名無しさん (ワッチョイ 7b68-5TCi)
2020/07/24(金) 13:38:33.26ID:w9fToQCu0 わざわざ画像にしなくてもURLに書いてるし
581デフォルトの名無しさん (ラクッペペ MMeb-Sn4z)
2020/07/24(金) 13:53:31.22ID:JpqyONWeM VBAもVBも黒歴史になりつつある点では似たり寄ったりだけどね
Office ScriptsではTypeScriptが使われるようになるんだっけ?
Office ScriptsではTypeScriptが使われるようになるんだっけ?
582デフォルトの名無しさん (ワッチョイ 414e-BRR5)
2020/07/24(金) 15:25:00.32ID:9v9Epd9J0 CodeLabとOffice Scriptsの違いが分からん
583デフォルトの名無しさん (ワッチョイ 4901-7yLj)
2020/07/25(土) 00:45:14.24ID:JvyY8SZI0 クラスのメソッドで例外が起きた時、メソッド内の発生場所で止まるようにする方法はありませんか?
標準モジュール内のメソッドを呼んだ位置まで巻き戻って停止してしまい、デバッグしづらいです。
標準モジュール内のメソッドを呼んだ位置まで巻き戻って停止してしまい、デバッグしづらいです。
584デフォルトの名無しさん (ワッチョイ 81da-5TCi)
2020/07/25(土) 03:30:34.71ID:XNRsY3fo0 止まったら何もできない
585デフォルトの名無しさん (ワッチョイ 414e-BRR5)
2020/07/25(土) 03:47:33.86ID:vIjhxGJs0586デフォルトの名無しさん (ワッチョイ 414e-BRR5)
2020/07/25(土) 03:48:10.37ID:vIjhxGJs0 ごめんpythonのスレと間違えた
587デフォルトの名無しさん (ワッチョイ 8b8e-VaRO)
2020/07/25(土) 03:52:26.30ID:ajAv/KNZ0 こことPythonのスレはどうしようもない馬鹿が来るよな
588デフォルトの名無しさん (ワッチョイ 2940-7yLj)
2020/07/25(土) 10:50:18.42ID:JW+blTJS0589デフォルトの名無しさん (アウアウカー Sa15-2mKV)
2020/07/25(土) 11:09:06.42ID:lCi24Eq2a オプション→全般のエラートラップをクラスモジュールで中断にするとよい。
590デフォルトの名無しさん (ワッチョイ 2940-7yLj)
2020/07/25(土) 11:33:18.16ID:JW+blTJS0 >>589
ありがとうございます
ありがとうございます
591デフォルトの名無しさん (ワッチョイ 2940-7yLj)
2020/07/25(土) 11:36:14.62ID:JW+blTJS0 シェルスクリプトのことをシェルってゆうなってあるけど、どう違うの?
592デフォルトの名無しさん (ワッチョイ 2940-7yLj)
2020/07/25(土) 11:36:22.19ID:JW+blTJS0 誤爆
593デフォルトの名無しさん (ワッチョイ fb8c-keh3)
2020/07/26(日) 00:01:52.46ID:YUJGnmE80 シェルで使うスクリプト
594デフォルトの名無しさん (アウアウエー Sae3-Ar/h)
2020/07/26(日) 00:13:48.38ID:PahVuP8ha Excelで使うVBAに関する質問スレッド
595デフォルトの名無しさん (ワッチョイ 8b8e-VaRO)
2020/07/26(日) 00:58:59.92ID:5SabrGL+0 馬鹿は勝手な略語を使う法則
596デフォルトの名無しさん (アウアウエー Sae3-Ar/h)
2020/07/26(日) 01:28:13.97ID:PahVuP8ha 「Excel」とはマイクロソフト社が販売する代表的なコンピューター上で動作する表計算アプリケーションソフトウェアのひとつです。
「VBA」とは
(コンピュータ用語)で
読み方は【ぶいびーえー】と読みます。
VisualBasic for Applications【ぶぃじゅある べいしっく ふぉー あぷりけいしょん】の略です。
マイクロソフト社製の各Office製品に附属しています。
それぞれのアプリケーション(Excel、Accessなど)の操作に特化したVisualBasicの亜種です。
「質問」とは質疑問い合わせの事です。
「スレ」とはスレッドの略で掲示板のプロセス単位の事です。
「part」とは・・
「VBA」とは
(コンピュータ用語)で
読み方は【ぶいびーえー】と読みます。
VisualBasic for Applications【ぶぃじゅある べいしっく ふぉー あぷりけいしょん】の略です。
マイクロソフト社製の各Office製品に附属しています。
それぞれのアプリケーション(Excel、Accessなど)の操作に特化したVisualBasicの亜種です。
「質問」とは質疑問い合わせの事です。
「スレ」とはスレッドの略で掲示板のプロセス単位の事です。
「part」とは・・
597デフォルトの名無しさん (ワントンキン MMd3-TniB)
2020/07/26(日) 01:30:01.34ID:uKzXRGWLM >>596
「質問」とは質問だろ
「質問」とは質問だろ
598デフォルトの名無しさん (アウアウエー Sae3-Ar/h)
2020/07/26(日) 01:38:30.83ID:PahVuP8ha 【パート】【パーツ】
部分、全体の一部、断片
小説の節、戯曲・詩などの部,編,巻,(連載物の)回や
楽器演奏者の役割、時間労働者、機械の部品
などがあります。
部分、全体の一部、断片
小説の節、戯曲・詩などの部,編,巻,(連載物の)回や
楽器演奏者の役割、時間労働者、機械の部品
などがあります。
599デフォルトの名無しさん (ワッチョイ 81da-5TCi)
2020/07/26(日) 01:52:49.28ID:sW/RrXzf0 死得るスクリプトを見たら最後
600デフォルトの名無しさん (ワッチョイ 1301-8Xcr)
2020/07/26(日) 11:21:54.14ID:Jda+4IKu0 Cells(1, 1)に、5Fという文字が書かれてます。
Cells(1, 1)から、Dim b As Byte と宣言されたbにバイナリデータの5Fを代入するにはどうすればよいでしょうか?
↓を実行すると、b = Cells(1, 1).Valueのところで、「型が一致しません」となります。
Sub test()
Dim b As Byte
b = Cells(1, 1).Value
Debug.Print b
End Sub
Cells(1, 1)から、Dim b As Byte と宣言されたbにバイナリデータの5Fを代入するにはどうすればよいでしょうか?
↓を実行すると、b = Cells(1, 1).Valueのところで、「型が一致しません」となります。
Sub test()
Dim b As Byte
b = Cells(1, 1).Value
Debug.Print b
End Sub
601デフォルトの名無しさん (ワッチョイ 41ce-RnSF)
2020/07/26(日) 11:27:03.08ID:DWe9vbm70 >>600
b = Val("&H" & Cells(1, 1).Text)
b = Val("&H" & Cells(1, 1).Text)
602デフォルトの名無しさん (ワッチョイ 8b8e-VaRO)
2020/07/26(日) 11:28:35.60ID:5SabrGL+0 また馬鹿が戻ってきたか
603600 (ワッチョイ 1301-8Xcr)
2020/07/26(日) 11:31:04.04ID:Jda+4IKu0 >>601
おお、ありがとうございます。 出来ました!
おお、ありがとうございます。 出来ました!
604デフォルトの名無しさん (ワッチョイ 9983-HEZ1)
2020/07/26(日) 11:33:49.79ID:b0sneaTl0 なんで変数の型も理解してない輩がExcelでバイナリ扱ってるの?
605デフォルトの名無しさん (ワッチョイ 8b8e-VaRO)
2020/07/26(日) 11:36:23.90ID:5SabrGL+0606デフォルトの名無しさん (ワッチョイ d901-s6lF)
2020/07/26(日) 11:48:03.95ID:xaHx8eK10 VBAごときでイキるなって
607デフォルトの名無しさん (ワッチョイ 8b63-UE+f)
2020/07/26(日) 16:21:34.57ID:81ge+c7W0 馬鹿に馬鹿だと言ってるだけでVBAでイキっているわけではない
VBAスレに馬鹿が多いからそう見えるだけで
VBAスレに馬鹿が多いからそう見えるだけで
608デフォルトの名無しさん (ワッチョイ 4901-fOmF)
2020/07/26(日) 16:41:47.78ID:MK3muVKT0 馬鹿に馬鹿と言ってなんの意味あんのよ
609デフォルトの名無しさん (ワッチョイ 81da-ecPg)
2020/07/26(日) 17:52:03.33ID:sW/RrXzf0 意味なんか関係ない
610デフォルトの名無しさん (ワッチョイ b9df-h1M8)
2020/07/26(日) 18:16:36.02ID:jictETsT0 5チャンネルはくだらない質問をすると、
張り倒されてぼこぼこにされて簀巻きにされて東京湾に沈められると聞いたので
がくがくしながら質問しています。
ちょぅとだけ質問していいですか?
Sub Main()
Dim RowCnt As Long
With ThisWorkbook.Sheets(1)
RowCnt = 2
Do
If .Cells(RowCnt, 1).Value = "" Then Exit Do
.Cells(RowCnt, 2).NumberFormatLocal = "@"
.Cells(RowCnt, 2).Value = GetISBN(.Cells(RowCnt, 1).Value)
RowCnt = RowCnt + 1
Loop
End With
についておしえてください。
張り倒されてぼこぼこにされて簀巻きにされて東京湾に沈められると聞いたので
がくがくしながら質問しています。
ちょぅとだけ質問していいですか?
Sub Main()
Dim RowCnt As Long
With ThisWorkbook.Sheets(1)
RowCnt = 2
Do
If .Cells(RowCnt, 1).Value = "" Then Exit Do
.Cells(RowCnt, 2).NumberFormatLocal = "@"
.Cells(RowCnt, 2).Value = GetISBN(.Cells(RowCnt, 1).Value)
RowCnt = RowCnt + 1
Loop
End With
についておしえてください。
611デフォルトの名無しさん (ワッチョイ b9df-h1M8)
2020/07/26(日) 18:57:11.06ID:jictETsT0 間違えたここまでだった。
Sub Main()
Dim RowCnt As Long
With ThisWorkbook.Sheets(1)
RowCnt = 2
Do
If .Cells(RowCnt, 1).Value = "" Then Exit Do
.Cells(RowCnt, 2).NumberFormatLocal = "@"
.Cells(RowCnt, 2).Value = GetISBN(.Cells(RowCnt, 1).Value)
RowCnt = RowCnt + 1
Loop
End With
amazonSearch2
End Sub
Sub Main()
Dim RowCnt As Long
With ThisWorkbook.Sheets(1)
RowCnt = 2
Do
If .Cells(RowCnt, 1).Value = "" Then Exit Do
.Cells(RowCnt, 2).NumberFormatLocal = "@"
.Cells(RowCnt, 2).Value = GetISBN(.Cells(RowCnt, 1).Value)
RowCnt = RowCnt + 1
Loop
End With
amazonSearch2
End Sub
612デフォルトの名無しさん (ワッチョイ 81da-ecPg)
2020/07/26(日) 19:53:49.36ID:sW/RrXzf0 日本語わかってないのかな
613デフォルトの名無しさん (ワッチョイ 53bc-23KC)
2020/07/26(日) 20:06:40.41ID:aLsM3Hzz0 30分かかって気付いたミスはコードの貼り間違いだけかよw
質問なんなんだよw
質問なんなんだよw
614デフォルトの名無しさん (スッップ Sd33-VaRO)
2020/07/26(日) 20:22:52.99ID:OH794sXtd 馬鹿ばっか
615デフォルトの名無しさん (アウアウエー Sae3-Ar/h)
2020/07/26(日) 20:33:02.31ID:T8T+tUZ4a616デフォルトの名無しさん (ワッチョイ fb8c-keh3)
2020/07/26(日) 20:53:16.35ID:YUJGnmE80617デフォルトの名無しさん (ワッチョイ 9983-HEZ1)
2020/07/26(日) 20:57:58.22ID:b0sneaTl0 そもそも質問が無い
618610・611 (ワッチョイ b9df-h1M8)
2020/07/26(日) 21:34:20.58ID:jictETsT0 他の掲示板で質問しているのでマルチポストになるとぶん殴られると聞いたので、
こっそりとしか質問できないので、、、
こっそり質問してます。(`・ω・´)
'Private Declare Sub Sleep Lib "kernel32" (ByVal ms As Long)
を64bitEXCEL(vba)で動かすためには、API宣言を変えないとダメだと聞いたのですが、
#If VBA7 Then
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As LongPtr)
#Else
Private Declare Sub Sleep Lib "kernel32" (ByVal ms As Long)
#End If
に変えてみたのですが、
実行時エラー'91':
オブジェクト変数またはWithブロック変数がしていされていません。
と出てまたダメでした。
どうすりゃいいですかね?
こっそりとしか質問できないので、、、
こっそり質問してます。(`・ω・´)
'Private Declare Sub Sleep Lib "kernel32" (ByVal ms As Long)
を64bitEXCEL(vba)で動かすためには、API宣言を変えないとダメだと聞いたのですが、
#If VBA7 Then
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As LongPtr)
#Else
Private Declare Sub Sleep Lib "kernel32" (ByVal ms As Long)
#End If
に変えてみたのですが、
実行時エラー'91':
オブジェクト変数またはWithブロック変数がしていされていません。
と出てまたダメでした。
どうすりゃいいですかね?
619デフォルトの名無しさん (ワッチョイ 8b8e-VaRO)
2020/07/26(日) 21:43:35.53ID:F4Iawv3Z0620デフォルトの名無しさん (ワッチョイ d17c-8Xcr)
2020/07/26(日) 22:01:17.25ID:NJflbSmf0 マルチポストが駄目と分かった上でもやるのは性質が悪すぎる
621デフォルトの名無しさん (ワッチョイ 81da-5TCi)
2020/07/26(日) 23:11:04.71ID:sW/RrXzf0 東京湾に連れて行くのがめんどくさい
622デフォルトの名無しさん (ワッチョイ d9da-5TCi)
2020/07/26(日) 23:53:25.41ID:FG7uH+9S0 >>610(たけし)は、本当はたけしじゃなくてタケルなのに、
お前たけしだろ!って言われて困惑している状態。
#If VBA7 Then
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As LongPtr)
#Else
つまり
お前たけしだろ!って言われて困惑している状態。
#If VBA7 Then
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As LongPtr)
#Else
つまり
623デフォルトの名無しさん (アウアウエー Sae3-Ar/h)
2020/07/27(月) 04:00:49.04ID:AjWs5F06a スレチ
624デフォルトの名無しさん (オッペケ Sr85-FNIW)
2020/07/27(月) 16:42:54.98ID:toMb+PQtr セルをダブルクリックしたらセルの内容を削除(delete)キーを押した状態にしたいんだけど可能かな?
625デフォルトの名無しさん (ワッチョイ 8bcc-5TCi)
2020/07/27(月) 17:43:54.17ID:uXQw94U/0 可能だよ
WorkSheetのBeforeDoubleClickイベントを使う
Deleteメソッドではないことに注意
それとは別に、普通にメソッドを実行するとUndoできなくなって危険だから、Sendkeysとか使った方がいいかも
WorkSheetのBeforeDoubleClickイベントを使う
Deleteメソッドではないことに注意
それとは別に、普通にメソッドを実行するとUndoできなくなって危険だから、Sendkeysとか使った方がいいかも
626デフォルトの名無しさん (ワッチョイ 134f-FdLM)
2020/07/27(月) 18:43:19.75ID:xLC4DZCW0 久しぶりにこのスレ来たけど
お前らが相変わらずで安心したわ
お前らが相変わらずで安心したわ
627デフォルトの名無しさん (ワッチョイ 4149-5TCi)
2020/07/27(月) 19:20:33.66ID:Tsc1/eGu0 >>512 512です
>>517さんの正規表現が私の理解不足でうまく使えなかったため>>522さんのやり方で下記のコードを書きました。1ファイル100列×500行程度のものを3つマージした後で置換するのは問題なかったのですが、5つのファイルをマージ後に置換したところエラー6のオーバーフローが発生し、8行目の「r = Reg.Replace(r.Value, "|")」の行がハイライトされていました
Dim r As RangeをDim r As Variantにしてみても解決しなかったのですが、これは検索対象の文字数が多すぎてオーバーフローになるのでしょうか。また対策があれば教えてください、よろしくお願いします(改行が多いと書き込めないため見づらくてすみません)
Dim Reg
Dim r As Range
Set Reg = CreateObject("VBScript.RegExp")
With Reg
.Pattern = "\|+" '検索パターン 連続した「|」
.Global = True '文字列全体を検索
For Each r In ActiveSheet.UsedRange
r = Reg.Replace(r.Value, "|") '「|」ひとつに置換
Next r
End With
With Reg
.Pattern = "^\|" '検索パターン 先頭の「|」
.Global = True
For Each r In ActiveSheet.UsedRange
r = Reg.Replace(r.Value, "") '削除
Next r
End With
With Reg
.Pattern = "^|$" '検索パターン 末尾の「|」
.Global = True
For Each r In ActiveSheet.UsedRange
r = Reg.Replace(r.Value, "") '削除
Next r
End With
Set Reg = Nothing
>>517さんの正規表現が私の理解不足でうまく使えなかったため>>522さんのやり方で下記のコードを書きました。1ファイル100列×500行程度のものを3つマージした後で置換するのは問題なかったのですが、5つのファイルをマージ後に置換したところエラー6のオーバーフローが発生し、8行目の「r = Reg.Replace(r.Value, "|")」の行がハイライトされていました
Dim r As RangeをDim r As Variantにしてみても解決しなかったのですが、これは検索対象の文字数が多すぎてオーバーフローになるのでしょうか。また対策があれば教えてください、よろしくお願いします(改行が多いと書き込めないため見づらくてすみません)
Dim Reg
Dim r As Range
Set Reg = CreateObject("VBScript.RegExp")
With Reg
.Pattern = "\|+" '検索パターン 連続した「|」
.Global = True '文字列全体を検索
For Each r In ActiveSheet.UsedRange
r = Reg.Replace(r.Value, "|") '「|」ひとつに置換
Next r
End With
With Reg
.Pattern = "^\|" '検索パターン 先頭の「|」
.Global = True
For Each r In ActiveSheet.UsedRange
r = Reg.Replace(r.Value, "") '削除
Next r
End With
With Reg
.Pattern = "^|$" '検索パターン 末尾の「|」
.Global = True
For Each r In ActiveSheet.UsedRange
r = Reg.Replace(r.Value, "") '削除
Next r
End With
Set Reg = Nothing
628デフォルトの名無しさん (ワッチョイ d17c-8Xcr)
2020/07/27(月) 19:35:23.16ID:qan76PHt0 >>627
文字数が多いのかもしれないと思ったなら少なくして試せばその考えが正しいのかどうか質問するまでもなく判明すると思うよ
文字数が多いのかもしれないと思ったなら少なくして試せばその考えが正しいのかどうか質問するまでもなく判明すると思うよ
629デフォルトの名無しさん (ワッチョイ 81da-5TCi)
2020/07/27(月) 20:41:26.42ID:FDPJJmZc0 >>627
そのファイルがないと確認できない
そのファイルがないと確認できない
630デフォルトの名無しさん (ワッチョイ d901-s6lF)
2020/07/27(月) 20:53:58.84ID:MCUd8BVw0 typeって使うとなんかいいことある?
少しずつパラメータは違うけど処理が同じのを何回もやらなきゃならなくて
Rengeでベタうちの方が後で見てもわかりやすいんだけど
そうすると少しずつ違う処理を全部作らないといけないんだよなあ
かと言って変数で共通化するとわかりにくくて後でメンテが大変そうでさあ
継承とかあればいいのに
少しずつパラメータは違うけど処理が同じのを何回もやらなきゃならなくて
Rengeでベタうちの方が後で見てもわかりやすいんだけど
そうすると少しずつ違う処理を全部作らないといけないんだよなあ
かと言って変数で共通化するとわかりにくくて後でメンテが大変そうでさあ
継承とかあればいいのに
631デフォルトの名無しさん (ワッチョイ 81da-ecPg)
2020/07/27(月) 22:43:35.72ID:FDPJJmZc0 コメント書いときゃいいんじゃね
632デフォルトの名無しさん (ワッチョイ 8b10-8Xcr)
2020/07/27(月) 23:06:24.84ID:FGdyWgnW0 VBAマクロの質問になりますが、
Webブラウザ上で検索した結果、10件ごとに1ページずつ結果がされた後に、
マクロから2ページ目に遷移する為の"2"のボタンを押したいのですが、
ソースコードの表示でhtml上に2のnameやtypeが表示されない為、マクロから2ページ目以降を自動的にクリックできません。
どなたかお教え願います
Webブラウザ上で検索した結果、10件ごとに1ページずつ結果がされた後に、
マクロから2ページ目に遷移する為の"2"のボタンを押したいのですが、
ソースコードの表示でhtml上に2のnameやtypeが表示されない為、マクロから2ページ目以降を自動的にクリックできません。
どなたかお教え願います
633デフォルトの名無しさん (ワッチョイ fb8c-keh3)
2020/07/28(火) 00:05:21.07ID:S0kilWhd0 ボタンを検索してそれが"2"やったら押したらええんやで
634デフォルトの名無しさん (ワッチョイ 8b10-8Xcr)
2020/07/28(火) 00:11:20.83ID:blBd/uyT0 VBAのマクロ上でどう検索すればいいでしょうか
635デフォルトの名無しさん (ワッチョイ fb8c-keh3)
2020/07/28(火) 00:22:36.19ID:S0kilWhd0 vba dom ボタン でググった最初のサイトに書いてるやないか
636デフォルトの名無しさん (ワッチョイ d1e6-RnSF)
2020/07/28(火) 00:22:46.29ID:572xGNLz0 html上でまったく見分けがつかないなら無理だ
あきらめろ
あきらめろ
637デフォルトの名無しさん (アウアウエー Sae3-Ar/h)
2020/07/28(火) 00:25:17.81ID:p8KDyqHYa 絶対に押すな!ってコメント書いとけばいいんじゃない?
638デフォルトの名無しさん (ワッチョイ 8b10-8Xcr)
2020/07/28(火) 00:26:19.28ID:blBd/uyT0 Web上からname属性やタグ等の情報が拾えない場合の画面上のボタンをクリックする方法が知りたいです
639デフォルトの名無しさん (ワッチョイ d1e6-l24t)
2020/07/28(火) 00:31:40.60ID:572xGNLz0 違うよ、クリックされたときのイベントハンドラを知るべきだよ
640デフォルトの名無しさん (ワッチョイ 8b10-8Xcr)
2020/07/28(火) 00:32:32.93ID:blBd/uyT0 VBAからchromeを起動して、googleでセルから拾ったwordの"りんご"を検索結果で表示させ、
htmlのソースコードが見れない状態で、2ページ目に遷移するボタンをクリックする方法になります
htmlのソースコードが見れない状態で、2ページ目に遷移するボタンをクリックする方法になります
641デフォルトの名無しさん (ワッチョイ d1e6-l24t)
2020/07/28(火) 00:39:14.92ID:572xGNLz0 見ろよ
642デフォルトの名無しさん (ワッチョイ 8b10-8Xcr)
2020/07/28(火) 00:44:13.26ID:blBd/uyT0643デフォルトの名無しさん (スプッッ Sd73-Spa3)
2020/07/28(火) 08:00:54.71ID:cRv8WCzbd >>627
Dim r As Variantにしても解決しなかったって、どうしてそれで解決すると思ったの?
というか、何でそんな頑張り?
Dim r As Range
Dim strData As String
Dim lngLen As Long
strData=r.Value
Do While lngLen<>Len(strData)
lngLen=Len(strData)
strData=Replace(strData,"||","|")
Loop
If Left(strData,1)="|" Then
strData=Mid(strData,2)
EndIf
If Right(strData,1)="|" Then
strData=Left(strData,Len(strData)-1)
EndIf
通勤中にスマホで書いたから試してないが、こんな感じでいけない?
Dim r As Variantにしても解決しなかったって、どうしてそれで解決すると思ったの?
というか、何でそんな頑張り?
Dim r As Range
Dim strData As String
Dim lngLen As Long
strData=r.Value
Do While lngLen<>Len(strData)
lngLen=Len(strData)
strData=Replace(strData,"||","|")
Loop
If Left(strData,1)="|" Then
strData=Mid(strData,2)
EndIf
If Right(strData,1)="|" Then
strData=Left(strData,Len(strData)-1)
EndIf
通勤中にスマホで書いたから試してないが、こんな感じでいけない?
644デフォルトの名無しさん (スプッッ Sd73-Spa3)
2020/07/28(火) 08:08:15.26ID:cRv8WCzbd >>640
ChromeでやるならSelenium系の話になるだろう。
IE系ならInternetExplorer.Application使ってできる。
属性については、Id、name、classnameあたりが無いならgetElementsByTagname使ってタグの何番目とか、そのオブジェクトの親、さらにその親あたりをId、name、classnameあたりで取得して、childnodesの何番目とやる。
ChromeでやるならSelenium系の話になるだろう。
IE系ならInternetExplorer.Application使ってできる。
属性については、Id、name、classnameあたりが無いならgetElementsByTagname使ってタグの何番目とか、そのオブジェクトの親、さらにその親あたりをId、name、classnameあたりで取得して、childnodesの何番目とやる。
645デフォルトの名無しさん (ワッチョイ b9cb-wJn/)
2020/07/28(火) 16:38:18.39ID:1uHtckRe0 ワークシートに下記のコード書いたときには動作するんですが、標準モジュールに書いたときには動かないのはどうすればいいでしょうか?
やりたいことは、「NG」という文字があったときは、結果に「未」を、「済」の場合は、その時の列の名前を結果に表示したいです。すべて「済」なら「完了」と表示するという意図のコードです。
https://i.imgur.com/CcGQxwO.jpg
Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Dim intR As Integer,intC As Integer,strW As String,LastCol As Integer
intR = Target.Row
intC = Target.Column
strW = Target.Text
LastCol = Cells(1, Columns.Count).End(xlToLeft).Column
If intR >= 3 And intC >= 3 Then
Select Case strW
Case "NG": Cells(intR, 2) = "未"
Case "済"
Select Case intC
Case Is = LastCol: Cells(intR, 2) = "完了"
Case Else: Cells(intR, 2) = Cells(1, intC)
End Select
End Select
End If
Application.EnableEvents = True
End Sub
やりたいことは、「NG」という文字があったときは、結果に「未」を、「済」の場合は、その時の列の名前を結果に表示したいです。すべて「済」なら「完了」と表示するという意図のコードです。
https://i.imgur.com/CcGQxwO.jpg
Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Dim intR As Integer,intC As Integer,strW As String,LastCol As Integer
intR = Target.Row
intC = Target.Column
strW = Target.Text
LastCol = Cells(1, Columns.Count).End(xlToLeft).Column
If intR >= 3 And intC >= 3 Then
Select Case strW
Case "NG": Cells(intR, 2) = "未"
Case "済"
Select Case intC
Case Is = LastCol: Cells(intR, 2) = "完了"
Case Else: Cells(intR, 2) = Cells(1, intC)
End Select
End Select
End If
Application.EnableEvents = True
End Sub
646デフォルトの名無しさん (ワッチョイ b9cb-wJn/)
2020/07/28(火) 16:44:46.31ID:1uHtckRe0 >>645
サブルーチンとして呼び出しをしたいと思っています
サブルーチンとして呼び出しをしたいと思っています
647デフォルトの名無しさん (ワッチョイ 132f-oJ29)
2020/07/28(火) 17:11:42.28ID:LXXezy4S0 そりゃ標準モジュールではイベントは発生しないからな
処理そのものは標準モジュールにサブルーチン(つか言い方が古いw)として定義してもいいけど
イベントそのものはイベントが起こるところで拾って呼び出せ
処理そのものは標準モジュールにサブルーチン(つか言い方が古いw)として定義してもいいけど
イベントそのものはイベントが起こるところで拾って呼び出せ
648デフォルトの名無しさん (ワッチョイ b9cb-wJn/)
2020/07/28(火) 17:54:35.95ID:1uHtckRe0649デフォルトの名無しさん (ワッチョイ d17c-8Xcr)
2020/07/28(火) 17:57:02.06ID:zYqweXz10 じゃあtestはどうやって呼び出すの
650デフォルトの名無しさん (ワッチョイ d901-s6lF)
2020/07/28(火) 19:05:20.92ID:HNUdUhp40 気合
651デフォルトの名無しさん (ワッチョイ 1342-h1M8)
2020/07/28(火) 19:15:09.19ID:jZfcEvn60 根性
652デフォルトの名無しさん (ワッチョイ 132f-oJ29)
2020/07/28(火) 19:49:41.64ID:LXXezy4S0 まずイベント(イベントハンドラ)とは何かを学んで
653デフォルトの名無しさん (ワッチョイ 7bf7-m+4H)
2020/07/28(火) 20:25:12.41ID:NP/CLywd0 ワークシートのイベントの中で標準モジュールのプロシージャを呼び出す
もしワークシートモジュールに一切コード書きたくないならクラス使うしかない
もしワークシートモジュールに一切コード書きたくないならクラス使うしかない
654デフォルトの名無しさん (ワッチョイ 4149-5TCi)
2020/07/28(火) 23:43:33.18ID:7SbfIR+a0 >>643
ありがとうございます
教えていただいたコードで試してみました
そのままだと実行時エラー91になり「strData = r.Value」がハイライトされ、
「Set r = ActiveSheet.UsedRange」を足したところ実行時エラー13型が一致しません
となってやはり「strData = r.Value」がハイライトされたので
「For Each r In ActiveSheet.UsedRange 〜 Next」を足したところエラーは表示されず
ローカルウィンドウ上では「|」が置換されていくのですが、実際のセルの文字列は
置換されませんでした。これは何が問題なのでしょうか
Sub test()
Dim r As Range
Dim strData As String
Dim lngLen As Long
Set r = ActiveSheet.UsedRange
For Each r In ActiveSheet.UsedRange
strData = r.Value
Do While lngLen <> Len(strData)
lngLen = Len(strData)
strData = Replace(strData, "||", "|")
Loop
If Left(strData, 1) = "|" Then
strData = Mid(strData, 2)
End If
If Right(strData, 1) = "|" Then
strData = Left(strData, Len(strData) - 1)
End If
Next
End Sub
ありがとうございます
教えていただいたコードで試してみました
そのままだと実行時エラー91になり「strData = r.Value」がハイライトされ、
「Set r = ActiveSheet.UsedRange」を足したところ実行時エラー13型が一致しません
となってやはり「strData = r.Value」がハイライトされたので
「For Each r In ActiveSheet.UsedRange 〜 Next」を足したところエラーは表示されず
ローカルウィンドウ上では「|」が置換されていくのですが、実際のセルの文字列は
置換されませんでした。これは何が問題なのでしょうか
Sub test()
Dim r As Range
Dim strData As String
Dim lngLen As Long
Set r = ActiveSheet.UsedRange
For Each r In ActiveSheet.UsedRange
strData = r.Value
Do While lngLen <> Len(strData)
lngLen = Len(strData)
strData = Replace(strData, "||", "|")
Loop
If Left(strData, 1) = "|" Then
strData = Mid(strData, 2)
End If
If Right(strData, 1) = "|" Then
strData = Left(strData, Len(strData) - 1)
End If
Next
End Sub
655デフォルトの名無しさん (アウアウウー Sa5d-ecPg)
2020/07/28(火) 23:44:22.96ID:q9B0Ijiva >>648
ワークシートの中を変更したらチェンジのイベントが起きるよね?
ワークシートの中を変更したらチェンジのイベントが起きるよね?
656デフォルトの名無しさん (ワッチョイ f15f-skXP)
2020/07/29(水) 00:33:18.42ID:rQllrZ0M0 >>654
strDateはただの文字列の変数だから置換した結果をセルに入れ直さなきゃセルの中身は書き換わらんよ
strDateはただの文字列の変数だから置換した結果をセルに入れ直さなきゃセルの中身は書き換わらんよ
657デフォルトの名無しさん (ワッチョイ 7949-xE3T)
2020/07/29(水) 00:46:40.06ID:d6pTrFks0658デフォルトの名無しさん (ワッチョイ d610-1vA1)
2020/07/29(水) 01:00:46.72ID:X5Dn8QJR0 >>644
ありがとうございます
objIE.document.GetElementsByTagName("タグ名")(添え字)
上記の構文で該当のページに自動クリックするようになったのです
For p = 1 to 10
objIE.document.GetElementsByTagName("タグ名")(p)
Next p
上のような構文で最初は2ページにきちんと遷移するのですが、次は4ページ、次は2ページ、次は3ページと
うまくページ遷移が出来ません。
一応MsgBoxでpを参照すると1〜10の数字は格納されてるみたいなのですが
objIE.document.GetElementsByTagName("タグ名")(1)で2ページ目
objIE.document.GetElementsByTagName("タグ名")(2)で4ページ目
objIE.document.GetElementsByTagName("タグ名")(3)で3ページ目
上記のように変数の数字と同じページに進んでくれない処理になります。
For文を使用してインクリメントするのではなく、表示させたいページとそれに対応する添え字で処理をしてくしか方法はないのでしょうか
ありがとうございます
objIE.document.GetElementsByTagName("タグ名")(添え字)
上記の構文で該当のページに自動クリックするようになったのです
For p = 1 to 10
objIE.document.GetElementsByTagName("タグ名")(p)
Next p
上のような構文で最初は2ページにきちんと遷移するのですが、次は4ページ、次は2ページ、次は3ページと
うまくページ遷移が出来ません。
一応MsgBoxでpを参照すると1〜10の数字は格納されてるみたいなのですが
objIE.document.GetElementsByTagName("タグ名")(1)で2ページ目
objIE.document.GetElementsByTagName("タグ名")(2)で4ページ目
objIE.document.GetElementsByTagName("タグ名")(3)で3ページ目
上記のように変数の数字と同じページに進んでくれない処理になります。
For文を使用してインクリメントするのではなく、表示させたいページとそれに対応する添え字で処理をしてくしか方法はないのでしょうか
659デフォルトの名無しさん (ワッチョイ d663-uaxO)
2020/07/29(水) 02:34:23.24ID:TpnjQV/H0 それでページ遷移したらバグを疑うが
660デフォルトの名無しさん (ワッチョイ 7a01-he4x)
2020/07/29(水) 13:22:46.34ID:mS6Tz06p0 本社が作って社内システムにアップロードされてるVBAマクロが
マクロの記録をつなぎ合わせて作った酷いコードでつらい・・・
連続した1000行*5列ぐらいのコピペするだけなのにVBE50行ぐらい使っててつらい・・・
マクロの記録をつなぎ合わせて作った酷いコードでつらい・・・
連続した1000行*5列ぐらいのコピペするだけなのにVBE50行ぐらい使っててつらい・・・
661デフォルトの名無しさん (スプッッ Sd7a-u4+4)
2020/07/29(水) 13:57:55.28ID:MurrSo1vd >>657
まず、最初の方にあるSet r = ActiveSheet.UsedRangeは意味が無いし、必要無い。
rはFor文の中でUsedRangeの中の1つ1つのセルを巡っていくのであって、UsedRangeそのものじゃない。
次に、元々のプログラムでも思ったのだが、書ける人は文字列を与えると変換する関数を作ることを考える。
それさえ出来てしまえばrにそれを与えるだけ。
Private Sub test()
Dim r As Range
For Each r In ActiveSheet.UsedRange
r.Value=ConvertString(r.Value)
Next
End Sub
Private Function ConvertString(strData As String) As String
Dim lngLen As Long
Do While lngLen<>Len(strData)
lngLen=Len(strData)
strData=Replace(strData,"||","|")
Loop
If Left(strData,1)="|" Then
strData=Mid(strData,2)
EndIf
If Right(strData,1)="|" Then
strData=Left(strData,Len(strData)-1)
EndIf
ConvertString=strData
End Function
まず、最初の方にあるSet r = ActiveSheet.UsedRangeは意味が無いし、必要無い。
rはFor文の中でUsedRangeの中の1つ1つのセルを巡っていくのであって、UsedRangeそのものじゃない。
次に、元々のプログラムでも思ったのだが、書ける人は文字列を与えると変換する関数を作ることを考える。
それさえ出来てしまえばrにそれを与えるだけ。
Private Sub test()
Dim r As Range
For Each r In ActiveSheet.UsedRange
r.Value=ConvertString(r.Value)
Next
End Sub
Private Function ConvertString(strData As String) As String
Dim lngLen As Long
Do While lngLen<>Len(strData)
lngLen=Len(strData)
strData=Replace(strData,"||","|")
Loop
If Left(strData,1)="|" Then
strData=Mid(strData,2)
EndIf
If Right(strData,1)="|" Then
strData=Left(strData,Len(strData)-1)
EndIf
ConvertString=strData
End Function
662デフォルトの名無しさん (スプッッ Sd7a-u4+4)
2020/07/29(水) 14:31:44.31ID:MurrSo1vd >>658
クリックする命令が無いが、For文の中でクリックしているとして、
1.そのpの1〜10が正しく遷移出来るリンクのあるタグかどうか?
2.一旦、遷移したら場合にもよるがobjIEは遷移後のページになる。
とすれば、Document以下のソースが遷移後のぺージのソースになる。
3.遷移には時間がかかるが、それをきちんと待つことが考慮されている?
ぐらいは気になるね。
クリックする命令が無いが、For文の中でクリックしているとして、
1.そのpの1〜10が正しく遷移出来るリンクのあるタグかどうか?
2.一旦、遷移したら場合にもよるがobjIEは遷移後のページになる。
とすれば、Document以下のソースが遷移後のぺージのソースになる。
3.遷移には時間がかかるが、それをきちんと待つことが考慮されている?
ぐらいは気になるね。
663デフォルトの名無しさん (ワッチョイ 99cc-UdrD)
2020/07/29(水) 15:27:30.52ID:6iCm/sfN0 配列ary2の重複を削除して配列ary3にいれたいのですが
実行後ary3の値はすべて空欄になってしまいます
ary2には全て値が入っています
Option Base 1
Sub Test4()
Dim EndRow, cnt, cnt2 As Long
Dim flg As Boolean
EndRow = Cells(Rows.Count,1).End(xlUp).Row
ReDim ary2(EndRow)
ReDim ary3(EndRow)
実行後ary3の値はすべて空欄になってしまいます
ary2には全て値が入っています
Option Base 1
Sub Test4()
Dim EndRow, cnt, cnt2 As Long
Dim flg As Boolean
EndRow = Cells(Rows.Count,1).End(xlUp).Row
ReDim ary2(EndRow)
ReDim ary3(EndRow)
664663 (ワッチョイ 99cc-UdrD)
2020/07/29(水) 15:28:20.62ID:6iCm/sfN0 ↓続きです
For cnt = 1 To EndRow 'ary2に値は入っています
ary2(cnt) = Cells(cnt,1)
End cnt
For cnt = 1 To UBound(ary2)
flg = False
For cnt2 = 1 To UBound(ary3)
If (ary2(cnt) = ary3(cnt2)) Then
flg = True
Exit For
End If
Next cnt2
If (flg = False) Then
ary3(UBound(ary3)) = ary2(cnt)
ReDim Preserve ary3(UBound(ary3) + 1)
End If
Next cnt
End Sub
For cnt = 1 To EndRow 'ary2に値は入っています
ary2(cnt) = Cells(cnt,1)
End cnt
For cnt = 1 To UBound(ary2)
flg = False
For cnt2 = 1 To UBound(ary3)
If (ary2(cnt) = ary3(cnt2)) Then
flg = True
Exit For
End If
Next cnt2
If (flg = False) Then
ary3(UBound(ary3)) = ary2(cnt)
ReDim Preserve ary3(UBound(ary3) + 1)
End If
Next cnt
End Sub
665デフォルトの名無しさん (ワッチョイ 79ce-Xvfy)
2020/07/29(水) 16:02:10.87ID:AAZ7Zxr30666デフォルトの名無しさん (ワッチョイ 79ce-Xvfy)
2020/07/29(水) 16:11:12.11ID:AAZ7Zxr30667デフォルトの名無しさん (ワッチョイ 017c-1vA1)
2020/07/29(水) 17:54:47.23ID:OLLqLA300 >>663
変数の中身がどういう動きしてるか1行1行確認しよう
変数の中身がどういう動きしてるか1行1行確認しよう
668663 (ワッチョイ 99cc-UdrD)
2020/07/29(水) 18:28:53.19ID:6iCm/sfN0669デフォルトの名無しさん (ワッチョイ 7a4f-1TqB)
2020/07/29(水) 18:36:47.82ID:XMqoLN/00670デフォルトの名無しさん (ワッチョイ 6501-pXS1)
2020/07/29(水) 19:15:26.15ID:pwxjYZ3c0 Mapに固定値設定してMapから取り出すってなんか意味ある?
直接固定値見てもいいんだけど
直接固定値見てもいいんだけど
671デフォルトの名無しさん (ラクッペペ MMee-LxoB)
2020/07/29(水) 19:38:04.93ID:/vJCggp/M 書いたやつに聞けよ
672デフォルトの名無しさん (ワッチョイ 017c-1vA1)
2020/07/29(水) 20:52:19.99ID:OLLqLA300 >>668
どうして空になってるのか順に追って行かないと原因わからんでしょ・・・
どうして空になってるのか順に追って行かないと原因わからんでしょ・・・
673デフォルトの名無しさん (JP 0H62-5jfS)
2020/07/30(木) 09:11:02.16ID:G1iLlMLAH VBAの知識0なんですけど
・1000円以上買うごとに1口
・1ヶ月感の累計購入金額総額で抽選
この条件で最大300人に当たるキャンペーンやりたいんだけど
これをVBAで動かして抽出するのにどれくらいの手間がかかりますか?
口数は1人あたり0口から5000口(最大500万円想定)
対象人数は最大2万人を想定してます
ランダム関数でなんとか無理やり組もうとするとデータ多すぎてメモリたんなくなる・・・
・1000円以上買うごとに1口
・1ヶ月感の累計購入金額総額で抽選
この条件で最大300人に当たるキャンペーンやりたいんだけど
これをVBAで動かして抽出するのにどれくらいの手間がかかりますか?
口数は1人あたり0口から5000口(最大500万円想定)
対象人数は最大2万人を想定してます
ランダム関数でなんとか無理やり組もうとするとデータ多すぎてメモリたんなくなる・・・
674デフォルトの名無しさん (ワッチョイ 99da-xE3T)
2020/07/30(木) 09:15:44.99ID:sgyBPyzj0 >>673
できる業者に委託する金だけだせばいいんじゃね
できる業者に委託する金だけだせばいいんじゃね
675デフォルトの名無しさん (テテンテンテン MMee-LTj5)
2020/07/30(木) 09:20:25.92ID:oxoY3p6DM そんなもんDBに投入してSQLで一発だろ
676デフォルトの名無しさん (ラクッペペ MMee-LxoB)
2020/07/30(木) 09:23:42.54ID:JMS2FJh9M 一口ごとに1枚プリントアウト。この時なるべく小さい紙に印刷するのがポイント!
後は紙を穴の空いたボックスに詰めて目隠しした担当者が300枚を抜き出す
後は紙を穴の空いたボックスに詰めて目隠しした担当者が300枚を抜き出す
677デフォルトの名無しさん (ワッチョイ 7a01-he4x)
2020/07/30(木) 09:36:09.05ID:tHevDqCo0 個人の氏名ごとに口数記録するじゃんね
口数の合計値をlongにいれるじゃんね
longの最大は21億〜だからいけるじゃんね
んでその合計値が例えば20万だったら
20万の中からRandomをうまいこと使って300個の数字を抽出すればいいだけじゃんね
各数字は氏名ごとに記録した口数を上から合計したときの数値と一致するわけじゃんね
簡単じゃんね
口数の合計値をlongにいれるじゃんね
longの最大は21億〜だからいけるじゃんね
んでその合計値が例えば20万だったら
20万の中からRandomをうまいこと使って300個の数字を抽出すればいいだけじゃんね
各数字は氏名ごとに記録した口数を上から合計したときの数値と一致するわけじゃんね
簡単じゃんね
678デフォルトの名無しさん (ワッチョイ 7a01-he4x)
2020/07/30(木) 09:43:40.24ID:tHevDqCo0 抽出するには、いろんな方法あるけど
位ごとに数字を選ぶみたいなのでもいいじゃんね
例えば合計値が232,984口だったとしたら
10万の位→2,1,0から1つえらぶ
1万の位→9,8,7,6,5,4,3,2,1,0から1つ選ぶ
千の位→9,8,7,6,5,4,3,2,1,0から1つ選ぶ
百の位→9,8,7,6,5,4,3,2,1,0から1つ選ぶ
10の位→9,8,7,6,5,4,3,2,1,0から1つ選ぶ
1の位→9,8,7,6,5,4,3,2,1,0から1つ選ぶ
これで1つの数字ができる
これを300回繰り返すんだけど
0になったり、重複したりしたら無効でやり直しするじゃんね
位ごとに数字を選ぶみたいなのでもいいじゃんね
例えば合計値が232,984口だったとしたら
10万の位→2,1,0から1つえらぶ
1万の位→9,8,7,6,5,4,3,2,1,0から1つ選ぶ
千の位→9,8,7,6,5,4,3,2,1,0から1つ選ぶ
百の位→9,8,7,6,5,4,3,2,1,0から1つ選ぶ
10の位→9,8,7,6,5,4,3,2,1,0から1つ選ぶ
1の位→9,8,7,6,5,4,3,2,1,0から1つ選ぶ
これで1つの数字ができる
これを300回繰り返すんだけど
0になったり、重複したりしたら無効でやり直しするじゃんね
679デフォルトの名無しさん (ワッチョイ 7a01-he4x)
2020/07/30(木) 09:44:36.17ID:tHevDqCo0 てかどういう風でもいいからゴリゴリやっていくのが面白いのにさー
スマートじゃなくてもいいからゴリゴリいこうぜぇー
スマートじゃなくてもいいからゴリゴリいこうぜぇー
680デフォルトの名無しさん (ドコグロ MM9a-Fc3l)
2020/07/30(木) 09:48:09.38ID:P52O6TU4M おまえら食いつきがいいな
681デフォルトの名無しさん (JP 0H62-5jfS)
2020/07/30(木) 09:51:09.03ID:G1iLlMLAH 最初口数だして横に5000まで数字並べて
IF(1〜5000<口数,RAND(),"")って全部のセルに埋めてたら
20000×5000の関数が動くからフリーズして困ったんだよね・・・
これをやったあとMAX関数で一番でかい数字引っ張ってきて
それをソートして上から300人ってすれば重複当選もないし問題ないかと思ってた
まさか4〜500万購入ユーザーがいるなんて聞いてなかったから気軽に引き受けちゃったよ・・・
IF(1〜5000<口数,RAND(),"")って全部のセルに埋めてたら
20000×5000の関数が動くからフリーズして困ったんだよね・・・
これをやったあとMAX関数で一番でかい数字引っ張ってきて
それをソートして上から300人ってすれば重複当選もないし問題ないかと思ってた
まさか4〜500万購入ユーザーがいるなんて聞いてなかったから気軽に引き受けちゃったよ・・・
682デフォルトの名無しさん (JP 0H62-5jfS)
2020/07/30(木) 09:53:13.58ID:G1iLlMLAH 取り敢えず2万人の口数を順番に足していったリスト作って
合計数からランダムに300個抜き出して
それを作ったリストと照らし合わせればいいのか
サンクス、突破口見えた気がする
VBAじゃなくてもいいのか・・・ありがとう
合計数からランダムに300個抜き出して
それを作ったリストと照らし合わせればいいのか
サンクス、突破口見えた気がする
VBAじゃなくてもいいのか・・・ありがとう
683デフォルトの名無しさん (ワッチョイ 7a01-he4x)
2020/07/30(木) 09:56:06.13ID:tHevDqCo0 それなんも工夫ないじゃんね
つまらないじゃんね
のーたりんじゃんね
つまらないじゃんね
のーたりんじゃんね
684デフォルトの名無しさん (ワッチョイ d540-Y3wz)
2020/07/30(木) 10:27:51.92ID:EC4xcxw30 >>673
A列に人の名前なりIDなり入れる
B列に口数
C列は当選番号の割り振りで、C1はB1の値、CnはC(n-1)+Bnとし、C(n-1)+1〜CnがAnの当選番号
これと独立して300回ランダム*全口数+1で当選番号300個を作る
それを1つずつ誰のものか確認して当選者とする
A列に人の名前なりIDなり入れる
B列に口数
C列は当選番号の割り振りで、C1はB1の値、CnはC(n-1)+Bnとし、C(n-1)+1〜CnがAnの当選番号
これと独立して300回ランダム*全口数+1で当選番号300個を作る
それを1つずつ誰のものか確認して当選者とする
685デフォルトの名無しさん (ワッチョイ 7a4f-1TqB)
2020/07/30(木) 10:35:23.48ID:cH8Va6i20 じゃんね、ってどこの方言だろ
東京ではじゃんとは言うけど
じゃんねはあまり使わない
使ったとしてもここまで執拗に使わないじゃんね
東京ではじゃんとは言うけど
じゃんねはあまり使わない
使ったとしてもここまで執拗に使わないじゃんね
686デフォルトの名無しさん (JP 0H62-5jfS)
2020/07/30(木) 11:11:00.39ID:G1iLlMLAH この方式だと重複当選しちゃうな・・・
2〜3回繰り返して重複当選除外してやるかいね
どうせ1回しかやらんし
2〜3回繰り返して重複当選除外してやるかいね
どうせ1回しかやらんし
687デフォルトの名無しさん (ワッチョイ 5d01-Dfq1)
2020/07/30(木) 11:50:07.24ID:RHK/Swp/0 ああ、重複当選なしなのね
じゃあ300じゃなくて400ぐらいやっといて、301以降は順に重複時用の補欠にすればいい
じゃあ300じゃなくて400ぐらいやっといて、301以降は順に重複時用の補欠にすればいい
688デフォルトの名無しさん (ワッチョイ d663-uaxO)
2020/07/30(木) 11:50:49.23ID:A5neBprE0 2口の人は2回当選して然るべきでは?
口数ってそういうモノだと思うが
口数ってそういうモノだと思うが
689デフォルトの名無しさん (JP 0H62-5jfS)
2020/07/30(木) 11:58:26.01ID:G1iLlMLAH 複数当選してしまうと総額が景品表示法に引っかかってしまうんですよ・・・
690デフォルトの名無しさん (ワッチョイ ce8c-UdrD)
2020/07/30(木) 12:09:03.16ID:LgbrNaJ+0691デフォルトの名無しさん (JP 0H62-5jfS)
2020/07/30(木) 12:11:02.85ID:G1iLlMLAH692デフォルトの名無しさん (ワッチョイ 79ce-Xvfy)
2020/07/30(木) 12:18:53.15ID:AlO/S9Es0693デフォルトの名無しさん (ワッチョイ 99da-xE3T)
2020/07/30(木) 12:58:00.60ID:sgyBPyzj0 知識0でやろうとするのが間違いだと思うが
694デフォルトの名無しさん (ワッチョイ 017c-1vA1)
2020/07/30(木) 13:01:49.26ID:5b+GEPmC0 >>673
何の手間?
何の手間?
695デフォルトの名無しさん (JP 0H62-5jfS)
2020/07/30(木) 13:20:10.92ID:G1iLlMLAH VBAの基礎を学んで言われたことを遂行するための知識を得るための手間かな・・・ほんと知識0なんで必要ならこれを機に手を出してみようかなと
696デフォルトの名無しさん (ワッチョイ 4583-23Ku)
2020/07/30(木) 13:41:23.22ID:/qyU4NXl0 なんか前もこんな奴居なかった?
697デフォルトの名無しさん (ワッチョイ 7a01-he4x)
2020/07/30(木) 13:59:59.21ID:tHevDqCo0 ビール飲みながらすげー適当に組んでみたんだけどあげちゃだめなの?
てかコード貼ったら使えるレベルなん?
うちの3世代ぐらい前のi5のPCで300件で5分ぐらいかかりそうな感じだけど
てかコード貼ったら使えるレベルなん?
うちの3世代ぐらい前のi5のPCで300件で5分ぐらいかかりそうな感じだけど
698デフォルトの名無しさん (ワッチョイ 7a4f-1TqB)
2020/07/30(木) 14:12:07.28ID:cH8Va6i20 >>697
いや、仕事しようよ
いや、仕事しようよ
699デフォルトの名無しさん (オッペケ Sr05-/T2I)
2020/07/30(木) 14:18:10.19ID:vzRw0yWJr >>658
回答頂きましてありがとうございます
再度の質問になえうのですが
getelement.所属クラス.getelementbytagname("a")(インクリメント変数).length -1
messageボックスでouterhtml出力
上記で取得されてる要素を参照すると
1の時、label=page1 何だかcheck=true
2の時、label=page2 何だかcheck=false
3の時、label=page1 何だかcheck=false
4の時、label=page4 何だかcheck=false
5の時、label=page3 何だかcheck=false
上記のような要素取得がなされており、番号順にページ遷移がなされてないことがわかりました
タグ以外にラベルやタイプ等で特定要素を抽出する方法はありませんでしょうか
回答頂きましてありがとうございます
再度の質問になえうのですが
getelement.所属クラス.getelementbytagname("a")(インクリメント変数).length -1
messageボックスでouterhtml出力
上記で取得されてる要素を参照すると
1の時、label=page1 何だかcheck=true
2の時、label=page2 何だかcheck=false
3の時、label=page1 何だかcheck=false
4の時、label=page4 何だかcheck=false
5の時、label=page3 何だかcheck=false
上記のような要素取得がなされており、番号順にページ遷移がなされてないことがわかりました
タグ以外にラベルやタイプ等で特定要素を抽出する方法はありませんでしょうか
700デフォルトの名無しさん (ワッチョイ 7a01-he4x)
2020/07/30(木) 14:23:09.16ID:tHevDqCo0 >>698
でしゅよねー(ろれつが回らない
でしゅよねー(ろれつが回らない
701デフォルトの名無しさん (ワッチョイ 017c-1vA1)
2020/07/30(木) 14:30:10.36ID:5b+GEPmC0702デフォルトの名無しさん (アウアウエー Sa22-DfbS)
2020/07/30(木) 15:27:13.51ID:YhpZ6thja703デフォルトの名無しさん (ワッチョイ 5d01-Dfq1)
2020/07/30(木) 15:33:07.63ID:zHAo07P50 Excel VBAの問題じゃなくてそれ以前の問題だよな
704デフォルトの名無しさん (スッップ Sd9a-nhZs)
2020/07/30(木) 15:36:31.06ID:keIwCUAVd perl,pythonスレに続く釣りなのかね?
705699 (オッペケ Sr05-/T2I)
2020/07/30(木) 15:36:51.50ID:THFUAhsVr innertextでクラス配下のaタグの行を1つずつ抽出でfor eachでページ番号のラベルに引っ掛けて処理するっていうのは可能でしょうか
706デフォルトの名無しさん (オッペケ Sr05-/T2I)
2020/07/30(木) 17:31:34.81ID:THFUAhsVr すいませんある程度自己解決しましたが、取得した要素にouterhtmlで抽出したところ番号順にタグ情報が取得出来たのですが、outerhtmlに続けて.clickだとエラーになります
一旦変数に格納しないとクリック出来ませんでしょうか
一旦変数に格納しないとクリック出来ませんでしょうか
707デフォルトの名無しさん (スプッッ Sd7a-u4+4)
2020/07/30(木) 19:05:02.57ID:GYhlOBUpd708デフォルトの名無しさん (ワッチョイ d610-1vA1)
2020/07/30(木) 23:18:28.10ID:i0KpmXdS0 >>707
すいません
Dim table_date As MSHTML.HTMLDocument
上の宣言でまずouterhtmlの取得要素を格納する変数を宣言する必要があると思いますが
ユーザー定義型エラーが出てしまい、調べたところ参照設定で[Microsoft HTML Object Library]を有効にしないと使えないという事ですが、
上記のHTMLDocumentオブジェクトで宣言したマクロを他のPCのエクセルでも使用する場合、イチイチ参照設定を有効にしないと使えないのでしょうか
あともう1つの質問になりますが、
table_date = getelementclass(objie,"所属class名").outerhtml
上記でまず対象のタグが所属するclassの全要素を変数に格納したあと
for i = 0 to 10
table_date.getelementsbytag("a")(i).click
next
変数に格納されたhtml文のaタグ要素を一行ずつ取り出してボタンクリックしたいのですが、
この構文で可能でしょうか
すいません
Dim table_date As MSHTML.HTMLDocument
上の宣言でまずouterhtmlの取得要素を格納する変数を宣言する必要があると思いますが
ユーザー定義型エラーが出てしまい、調べたところ参照設定で[Microsoft HTML Object Library]を有効にしないと使えないという事ですが、
上記のHTMLDocumentオブジェクトで宣言したマクロを他のPCのエクセルでも使用する場合、イチイチ参照設定を有効にしないと使えないのでしょうか
あともう1つの質問になりますが、
table_date = getelementclass(objie,"所属class名").outerhtml
上記でまず対象のタグが所属するclassの全要素を変数に格納したあと
for i = 0 to 10
table_date.getelementsbytag("a")(i).click
next
変数に格納されたhtml文のaタグ要素を一行ずつ取り出してボタンクリックしたいのですが、
この構文で可能でしょうか
709デフォルトの名無しさん (ワッチョイ fa63-uaxO)
2020/07/30(木) 23:22:34.48ID:b3ddbfY40 ちゃんもリファレンスを読んで返り値の型を確認しようね
710デフォルトの名無しさん (ワッチョイ d68e-nhZs)
2020/07/31(金) 00:01:53.71ID:sBpjKr+V0 >>708
そろそろ死ねよ
そろそろ死ねよ
711デフォルトの名無しさん (アウアウウー Sa09-4GEq)
2020/07/31(金) 06:14:13.92ID:mPBeAG88a >>708
まず自分で考えるくせを付けたほうがいいよ
まず自分で考えるくせを付けたほうがいいよ
712デフォルトの名無しさん (ワッチョイ 4102-UD9X)
2020/07/31(金) 07:35:13.13ID:Seq7lwgB0 ソルバーを使おうと思ってまずは機能するか簡単なものを作ってみたんですが、
与える値によって解があるにも関わらず機能したりしなかったりするんですが何がおかしいのでしょうか
A2 9
A3 15
A4 30
B2 空白
B3 空白
B4 空白
C2 =SUMPRODUCT(A2:A4,B2:B4)
として、値45で実行すると正しく解が見つかるのですが
値60で実行すると解が見つけられないのです。
45の場合
https://i.imgur.com/eAOJ9Ju.jpg
https://i.imgur.com/eCc0hFi.jpg
60の場合
https://i.imgur.com/t2CqGfo.jpg
https://i.imgur.com/lNC6CDZ.jpg
与える値によって解があるにも関わらず機能したりしなかったりするんですが何がおかしいのでしょうか
A2 9
A3 15
A4 30
B2 空白
B3 空白
B4 空白
C2 =SUMPRODUCT(A2:A4,B2:B4)
として、値45で実行すると正しく解が見つかるのですが
値60で実行すると解が見つけられないのです。
45の場合
https://i.imgur.com/eAOJ9Ju.jpg
https://i.imgur.com/eCc0hFi.jpg
60の場合
https://i.imgur.com/t2CqGfo.jpg
https://i.imgur.com/lNC6CDZ.jpg
713デフォルトの名無しさん (アウアウエー Sa22-DfbS)
2020/07/31(金) 08:36:27.75ID:BJAFpQuia714デフォルトの名無しさん (ワッチョイ fa63-uaxO)
2020/07/31(金) 09:39:24.31ID:j4Q2HRqw0 局所最適なんだから初期値によって結果が異なるのは自明です
715デフォルトの名無しさん (ワッチョイ fa2f-SLIs)
2020/07/31(金) 11:33:16.53ID:QyaenPE80 で、それのどこにVBAが関係してるんだ?
716デフォルトの名無しさん (スプッッ Sd7a-u4+4)
2020/07/31(金) 12:13:10.42ID:QmvWOqJdd717デフォルトの名無しさん (ワッチョイ 7a4f-1TqB)
2020/07/31(金) 12:28:54.85ID:TQ16TWaV0 質問です
シェイプを回転させたくて
シェイプのRotationX,RotationY,RotationZを弄ってみたのですが、
Z軸は上手く行くのですが、X軸、Y軸はその軸に併せて縮小するだけで全く奥行きが出ません。
これは設定するプロパティが足りないのでしょうか?
それともこういうものなんでしょうか?
シェイプを回転させたくて
シェイプのRotationX,RotationY,RotationZを弄ってみたのですが、
Z軸は上手く行くのですが、X軸、Y軸はその軸に併せて縮小するだけで全く奥行きが出ません。
これは設定するプロパティが足りないのでしょうか?
それともこういうものなんでしょうか?
718デフォルトの名無しさん (アウアウエー Sa22-DfbS)
2020/07/31(金) 13:03:40.39ID:qhJJRQ9da 2.5Dとか擬似 3Dに過ぎないからでしょ
719デフォルトの名無しさん (ワッチョイ 4102-UD9X)
2020/07/31(金) 20:02:27.14ID:Seq7lwgB0720デフォルトの名無しさん (ワッチョイ 65da-xE3T)
2020/08/01(土) 08:39:00.72ID:kuObS2ra0721デフォルトの名無しさん (ワッチョイ 4583-23Ku)
2020/08/01(土) 09:22:34.54ID:wQymbaU60 部屋の模様替え後のレイアウトをExcelで作ろうとしてた人はいたな
722デフォルトの名無しさん (ブーイモ MMbe-PQMy)
2020/08/01(土) 09:31:20.60ID:znOplMqnM 一軒家の建築図面をExcelで作ろうとしてる人もいるかもしれない
723デフォルトの名無しさん (ワッチョイ 1602-xE3T)
2020/08/01(土) 11:11:05.09ID:Y2rZE5zP0 セルの色で絵を描くおじいちゃんがいる
724デフォルトの名無しさん (ワッチョイ 79ce-Xvfy)
2020/08/01(土) 11:15:30.51ID:qSPnGZZQ0 15年ぐらい前に、セルに色を塗ってゲームやアニメを作るのがはやった
725デフォルトの名無しさん (アウアウカー Sa5d-DfbS)
2020/08/01(土) 11:19:29.08ID:biQ1QRTHa Excelで 3Dモデル表示は出来るぞ?
ホーム
わかできブログ
ExcelやWordでも3Dモデルが扱えるというので試してみた
https://www.wakarutodekiru.com/blog/tips/673.html
https://www.wakarutodekiru.com/blog/wp-content/uploads/2020/05/2017-09-25_15h52_57-600x447-1.png
ホーム
わかできブログ
ExcelやWordでも3Dモデルが扱えるというので試してみた
https://www.wakarutodekiru.com/blog/tips/673.html
https://www.wakarutodekiru.com/blog/wp-content/uploads/2020/05/2017-09-25_15h52_57-600x447-1.png
726デフォルトの名無しさん (ワッチョイ 79ce-Xvfy)
2020/08/01(土) 11:33:13.92ID:qSPnGZZQ0 できるかできないかじゃなくて、表示パフォーマンスや製作コストが実用レベルかどうかが重要では
727デフォルトの名無しさん (アウアウカー Sa5d-DfbS)
2020/08/01(土) 11:39:41.69ID:biQ1QRTHa728デフォルトの名無しさん (ワッチョイ 5d01-UdrD)
2020/08/01(土) 11:47:14.76ID:bRba9mah0 エクセルを禁止しないと日本のITは韓国に追いつけない。
エクセルのせいで数学がわからない子供たちが増えている。
Ubuntuを使うべき。
エクセルのせいで数学がわからない子供たちが増えている。
Ubuntuを使うべき。
729デフォルトの名無しさん (ワッチョイ 99da-xE3T)
2020/08/01(土) 12:06:15.89ID:51ANSeyq0 EXCELとの因果関係を証明せよ
730デフォルトの名無しさん (ワッチョイ 4583-23Ku)
2020/08/01(土) 12:21:54.41ID:wQymbaU60 そもそも子供はExcel使ってねーだろ
なんか電波でも出してるのか?
なんか電波でも出してるのか?
731デフォルトの名無しさん (アウアウカー Sa5d-DfbS)
2020/08/01(土) 12:29:20.74ID:biQ1QRTHa ソロバンから電卓に代わってもそうゆう人って一定数いるよね
小学生からExcel使えるなら
FAXで集計してるコロナ関係者よりマシ
小学生からExcel使えるなら
FAXで集計してるコロナ関係者よりマシ
732デフォルトの名無しさん (ワッチョイ 1d02-pXIf)
2020/08/01(土) 12:35:20.61ID:GdrGS70y0 そうゆうとか言ってる人はVBAの前に日本語勉強したほうがいいよ
733デフォルトの名無しさん (ワッチョイ 5d01-UdrD)
2020/08/01(土) 12:49:17.09ID:bRba9mah0 小学生のIT教育でUbuntuのインストールを教えるべきでは?
734デフォルトの名無しさん (アウアウカー Sa5d-DfbS)
2020/08/01(土) 12:59:14.62ID:biQ1QRTHa すいませんすみませんあーざーっす
「なんで、そーゆーこと言うの?」さおいふ
オッハーマヨチュチュ
タイガーアッパっパー
「こちらの方でよろしかったですか?」
「おにぎり温めなかったほうで大丈夫ですか?」
「お買い物袋はお持ちでありませんでかまいませんか?」
「なんで、そーゆーこと言うの?」さおいふ
オッハーマヨチュチュ
タイガーアッパっパー
「こちらの方でよろしかったですか?」
「おにぎり温めなかったほうで大丈夫ですか?」
「お買い物袋はお持ちでありませんでかまいませんか?」
735デフォルトの名無しさん (ワッチョイ 2590-roBb)
2020/08/01(土) 13:03:30.83ID:cAfu1ZYc0736デフォルトの名無しさん (ワッチョイ 5d01-UdrD)
2020/08/01(土) 13:04:03.06ID:bRba9mah0 UbuntuはスパコンのOSにも使われているので、数学に強いです。
エクセルは禁止にするべきです。
エクセルは禁止にするべきです。
737デフォルトの名無しさん (ワッチョイ 7a4f-1TqB)
2020/08/01(土) 13:50:27.99ID:VVRkNkWF0 >>736
金持ちLinuxおじさんこっちに来てまで迷惑掛けるなよ
金持ちLinuxおじさんこっちに来てまで迷惑掛けるなよ
738デフォルトの名無しさん (ワッチョイ d6b3-UD9X)
2020/08/01(土) 17:35:39.71ID:l0aqZI9e0 マクロ実行ボタン1を押すとマクロ実行ボタン1が消えて
新しいマクロ実行ボタン2が出現。ボタン2を押すとマクロ実行ボタン3が出現するような
繰り返し動作を行いたいのですが可能でしょうか?
コードを教えていただきたく、よろしくお願いします。
新しいマクロ実行ボタン2が出現。ボタン2を押すとマクロ実行ボタン3が出現するような
繰り返し動作を行いたいのですが可能でしょうか?
コードを教えていただきたく、よろしくお願いします。
739デフォルトの名無しさん (ワッチョイ cd92-23Ku)
2020/08/01(土) 17:45:47.31ID:BG2/nyCb0 >>738
つVisible
つVisible
740デフォルトの名無しさん (ワッチョイ 7aef-xE3T)
2020/08/01(土) 18:55:56.93ID:7hgxy1yb0 >>738
少し違うけど、こうした方が楽
With マクロ実行ボタン
Select Case .Caption
Case "マクロ実行ボタン2"
マクロ2
.Caption = "マクロ実行ボタン3"
Case "マクロ実行ボタン3"
マクロ3
.Caption = "マクロ実行ボタン1"
Case Else
マクロ1
.Caption = "マクロ実行ボタン2"
End Select
End With
少し違うけど、こうした方が楽
With マクロ実行ボタン
Select Case .Caption
Case "マクロ実行ボタン2"
マクロ2
.Caption = "マクロ実行ボタン3"
Case "マクロ実行ボタン3"
マクロ3
.Caption = "マクロ実行ボタン1"
Case Else
マクロ1
.Caption = "マクロ実行ボタン2"
End Select
End With
741デフォルトの名無しさん (ワッチョイ 6501-pXS1)
2020/08/01(土) 18:58:42.53ID:B3d0/RPj0 一つのボタンにいろんな機能を詰め込むのはどうかと思うの
742デフォルトの名無しさん (ドコグロ MM9a-LWbo)
2020/08/01(土) 19:43:27.83ID:0WCKoTHWM >>738
最近そう言うUI多いけど昔のように押せない時はグレーアウト(.Enabled)する方がわかりやすいと思うのは俺だけ?
最近そう言うUI多いけど昔のように押せない時はグレーアウト(.Enabled)する方がわかりやすいと思うのは俺だけ?
743デフォルトの名無しさん (アウアウエー Sa22-Vs42)
2020/08/01(土) 20:04:46.26ID:xQeMvl7Qa もう少し背景が分かるとね
インストーラの [次へ] みたいならこうだとか、有意義な回答が得られそうだけど
インストーラの [次へ] みたいならこうだとか、有意義な回答が得られそうだけど
744デフォルトの名無しさん (ワッチョイ 1602-xE3T)
2020/08/01(土) 20:14:10.47ID:Y2rZE5zP0 ボタン1が押される
表示をボタン2に変える
無効にする
ボタン1の処理する
処理終わる
有効にする
これならまぁ押された時の表示によって分岐もありかな
表示をボタン2に変える
無効にする
ボタン1の処理する
処理終わる
有効にする
これならまぁ押された時の表示によって分岐もありかな
745デフォルトの名無しさん (ワッチョイ 99da-xE3T)
2020/08/02(日) 00:24:11.20ID:fhoRH5wU0 >>743
その場合はシートの移動のほうがスッキリする
その場合はシートの移動のほうがスッキリする
746デフォルトの名無しさん (テテンテンテン MMee-DfbS)
2020/08/02(日) 04:27:47.15ID:yz3gxwYFM ラウンドワンとかゲームセンターに置いてある
「動体視力ゲーム」みたいなのじゃないの?
数字ボタンがランダムな位置に出現して
押したら次のボタンが別の位置に現れるヤツ
「動体視力ゲーム」みたいなのじゃないの?
数字ボタンがランダムな位置に出現して
押したら次のボタンが別の位置に現れるヤツ
747デフォルトの名無しさん (ワッチョイ 4e06-LqCg)
2020/08/02(日) 12:51:46.72ID:i29UoGb/0 >>673
エクセルのほうが簡単だと思います。
A列:1〜20000までの連番
B列:口数
C列:∔B1/B列合計 (以下コピー)
D列:1行目は0、2行目 +C1、3行目以降は=+D2+C2をコピー
E列:+A1(以下コピー)
F列:=RAND()(以下コピー)
G列:=VLOOKUP(+F1,D$1:E$20000,2)を300行目までコピー
300/20000なら大口がいないと重複しなさそう。
重複があったらシートコピーして当選行を削除。
エクセルのほうが簡単だと思います。
A列:1〜20000までの連番
B列:口数
C列:∔B1/B列合計 (以下コピー)
D列:1行目は0、2行目 +C1、3行目以降は=+D2+C2をコピー
E列:+A1(以下コピー)
F列:=RAND()(以下コピー)
G列:=VLOOKUP(+F1,D$1:E$20000,2)を300行目までコピー
300/20000なら大口がいないと重複しなさそう。
重複があったらシートコピーして当選行を削除。
748デフォルトの名無しさん (ワッチョイ 7a01-he4x)
2020/08/02(日) 13:42:27.44ID:7JTul7vs0 俺らそういうのいやだから
重複しなさそうとか認めないし
重複しなさそうとか認めないし
749デフォルトの名無しさん (ワッチョイ 4e06-LqCg)
2020/08/02(日) 14:04:53.69ID:i29UoGb/0 ベースモデル考えて確率的に速い手段を選ぶだけ。
コード書くのが好きなら計算結果を配列に入れて、既定カウントに達するまで回せばいいけど、時間の無駄。
コード書くのが好きなら計算結果を配列に入れて、既定カウントに達するまで回せばいいけど、時間の無駄。
750デフォルトの名無しさん (ワッチョイ f102-Y3wz)
2020/08/02(日) 14:52:01.85ID:6ZNrYs7D0 条件にもよるけど今回の話の場合は1回目重複覚悟でやってから重複分だけ再度重複なしの方法でやるのが速そうだね
751デフォルトの名無しさん (ワッチョイ 7a01-he4x)
2020/08/02(日) 15:17:38.22ID:7JTul7vs0 時間かかるってそんなの5分で終わるし
752デフォルトの名無しさん (ワッチョイ 4e06-hU8h)
2020/08/02(日) 18:40:53.06ID:i29UoGb/0 >>751
ワッチョイって何かわかる?
ワッチョイって何かわかる?
753デフォルトの名無しさん (ワッチョイ 7a01-he4x)
2020/08/02(日) 19:11:50.62ID:7JTul7vs0754デフォルトの名無しさん (ワッチョイ 5d01-UD9X)
2020/08/02(日) 22:26:59.52ID:RZU5Rxbr0 >>747
A列:連番
B列:口数
C列:当選確率 = 口数/口数の合計
D列:点数 = 当選確率*RAND()
これでソートかけたほうが簡単じゃね
300番付近のボーダーラインで点数の重複が生じたら
重複者のみを対象に再度抽選
まだ重複者がいたらさらに再度抽選(・・・)
再抽選回数が0〜300と未定だけども現実的には多くても数回で終わるだろうよ
A列:連番
B列:口数
C列:当選確率 = 口数/口数の合計
D列:点数 = 当選確率*RAND()
これでソートかけたほうが簡単じゃね
300番付近のボーダーラインで点数の重複が生じたら
重複者のみを対象に再度抽選
まだ重複者がいたらさらに再度抽選(・・・)
再抽選回数が0〜300と未定だけども現実的には多くても数回で終わるだろうよ
755デフォルトの名無しさん (ワッチョイ 4e06-LqCg)
2020/08/02(日) 22:40:10.04ID:i29UoGb/0 >>754
そちらの方がいいですね。
そちらの方がいいですね。
756デフォルトの名無しさん (ワッチョイ 79ce-Xvfy)
2020/08/03(月) 02:34:06.94ID:R5x2YJ6L0 それだと当選確率が公平にならない気がする
まあコーディングの手間と計算時間と公平さとどっちを取るかだな
まあコーディングの手間と計算時間と公平さとどっちを取るかだな
757デフォルトの名無しさん (ワッチョイ 99da-xE3T)
2020/08/03(月) 05:36:57.74ID:Z9mi6E360 一回の抽選ごとに当選者を省いていけばいとおもうが
758デフォルトの名無しさん (ワッチョイ 79ce-Xvfy)
2020/08/03(月) 06:39:58.48ID:R5x2YJ6L0 数学的に「当選者を除外しながら次を抽選」で公平になる
A列に応募者を一列に並べて、2口応募なら2回並べて、存在するデータの行数*RAND()+1で抽選すれば、自動的に口数に比例して当選確率が上がる
当選者はどこかに覚えておいて、A列から除外してから次を抽選
300人の抽選なんて1秒もかからないし、プログラムもきわめて単純、作業列も必要ない
A列に応募者を一列に並べて、2口応募なら2回並べて、存在するデータの行数*RAND()+1で抽選すれば、自動的に口数に比例して当選確率が上がる
当選者はどこかに覚えておいて、A列から除外してから次を抽選
300人の抽選なんて1秒もかからないし、プログラムもきわめて単純、作業列も必要ない
759デフォルトの名無しさん (ワッチョイ 017c-1vA1)
2020/08/03(月) 11:15:41.27ID:n1hXaiTs0 >>756
当選の公平さを取らないと企業として問題あるよ
当選の公平さを取らないと企業として問題あるよ
760デフォルトの名無しさん (テテンテンテン MMee-DfbS)
2020/08/03(月) 11:17:37.07ID:uwp3oPMnM 5ちゃんに書き込んでる時点でお察し
761デフォルトの名無しさん (ワッチョイ 017c-1vA1)
2020/08/03(月) 11:20:43.87ID:n1hXaiTs0 もう無理して数式でなんとかしようとするよりVBAでさっさと作った方がややこしくないし手っ取り早いんじゃないの
それなら処理時間なんか気にする必要も無し
それなら処理時間なんか気にする必要も無し
762デフォルトの名無しさん (アウアウエー Sa22-9tPT)
2020/08/03(月) 12:19:51.87ID:nPrsNj3oa や〜い、お察しお察し〜
763デフォルトの名無しさん (アウアウウー Sa09-4GEq)
2020/08/03(月) 12:31:15.20ID:rYhmIRt7a いぜん懸賞の雑誌で架空の人物に当選したとかやってたな
764デフォルトの名無しさん (ラクッペペ MMee-LxoB)
2020/08/03(月) 12:34:55.84ID:Dbk7eCCQM 発表は発送をもってかえさせろってのは
みんなインチキだよ
運ちゃんがボスジャン着ていたのは役得
みんなインチキだよ
運ちゃんがボスジャン着ていたのは役得
765デフォルトの名無しさん (アウアウカー Sa5d-skXP)
2020/08/03(月) 12:41:50.97ID:1eg4GQBHa 抽選システムなんて大概再使用されるだろうから手作業で当選者除去とかやらないといけないならVBAで組んじゃったほうがいいだろうな
766デフォルトの名無しさん (ワッチョイ fa2f-LqCg)
2020/08/03(月) 13:54:58.27ID:QvK0nIgr0 つかVBAの乱数とか公平といえるんかね
本当に公平な抽選は第三者立ち合いで見えるようにやるんだが
本当に公平な抽選は第三者立ち合いで見えるようにやるんだが
767デフォルトの名無しさん (ワッチョイ 017c-1vA1)
2020/08/03(月) 14:42:43.98ID:n1hXaiTs0 プログラムによる抽選が不正扱いなら全国の企業が謝罪案件になるが・・・
768デフォルトの名無しさん (ワッチョイ fa63-uaxO)
2020/08/03(月) 14:57:06.86ID:wycAObPT0 第三者立ち合いで乱数生成を!?
769デフォルトの名無しさん (アウアウウー Sa09-4GEq)
2020/08/03(月) 15:12:09.39ID:7WhWwh2+a パチンコ屋はあやしい
770デフォルトの名無しさん (ワッチョイ 1602-xE3T)
2020/08/03(月) 15:30:38.22ID:2tn2jJCj0 立会人を選定するための立会人が必要になるな
771デフォルトの名無しさん (ワッチョイ 99da-xE3T)
2020/08/03(月) 18:38:47.21ID:Z9mi6E360 立会人って居るだけじゃねーの
772デフォルトの名無しさん (ワッチョイ d68e-nhZs)
2020/08/03(月) 18:41:49.78ID:cM5/PGxb0 座って接待を受けるだけの誰にでも出来る仕事
773デフォルトの名無しさん (ワッチョイ d6b3-UD9X)
2020/08/03(月) 20:25:24.18ID:YOfHflqE0 Sheet2で使うユーザーフォームにSheet1から参照したデータをコンボボックスに表示させ
CMBBox1の入力内容に合わせCMBBox2を連動させたいのですが
CMBbox1はこんな感じでデータを拾っています。
CMBBox1.RowSource = "Sheet1! H3:H" & Worksheets("Sheet1").Range("H" & Rows.Count).End(xlUp).Row
CMBBox2にCMBBox1が入力されると、参照列(H列)の4つ右のセルを表示させるにはどうしたらよいでしょうか
(CNBBox1にSheet1のH3が入力されると、CMBBox2のリストにSheet1のL3が表示される)
似たようなコードを拾ってきたのですがこれを弄って使えるようにしたいです。
Private Sub CMBBox1_Change()
Set ws = Worksheets("Sheet1")
Col = CMBBox1.ListIndex + 12
品名CMB2Box.Clear
For i = 1 To ws.Cells(Rows.Count, Col).End(xlUp).Row
CMBBox2.AddItem ws.Cells(i, Col).Value
Next
End Sub
よろしくお願いします
CMBBox1の入力内容に合わせCMBBox2を連動させたいのですが
CMBbox1はこんな感じでデータを拾っています。
CMBBox1.RowSource = "Sheet1! H3:H" & Worksheets("Sheet1").Range("H" & Rows.Count).End(xlUp).Row
CMBBox2にCMBBox1が入力されると、参照列(H列)の4つ右のセルを表示させるにはどうしたらよいでしょうか
(CNBBox1にSheet1のH3が入力されると、CMBBox2のリストにSheet1のL3が表示される)
似たようなコードを拾ってきたのですがこれを弄って使えるようにしたいです。
Private Sub CMBBox1_Change()
Set ws = Worksheets("Sheet1")
Col = CMBBox1.ListIndex + 12
品名CMB2Box.Clear
For i = 1 To ws.Cells(Rows.Count, Col).End(xlUp).Row
CMBBox2.AddItem ws.Cells(i, Col).Value
Next
End Sub
よろしくお願いします
774デフォルトの名無しさん (ワッチョイ 01e6-LxoB)
2020/08/03(月) 21:06:03.90ID:ukM+b7An0 リストに1件だけ表示っておかしくね?
そのデザインは却下だ
そのデザインは却下だ
775デフォルトの名無しさん (オッペケ Sr05-bwEi)
2020/08/03(月) 21:11:33.10ID:/CvXaagwr listindexとoffset使えばいけんじゃね?
776デフォルトの名無しさん (ワッチョイ 5d01-UdrD)
2020/08/03(月) 21:37:39.33ID:nPxqefQu0 A列最終行の次の行から、下方向150行に本日の日付を表示させたいのですが、
どう記述して良いのかわかりません。
ぐぐって最終行取得のコードまでは見つけたのですが、指定範囲に日付表示のコードを
見つけることが出来ませんでした。
お手数をおかけしますが、ご教授をお願いします。
どう記述して良いのかわかりません。
ぐぐって最終行取得のコードまでは見つけたのですが、指定範囲に日付表示のコードを
見つけることが出来ませんでした。
お手数をおかけしますが、ご教授をお願いします。
777デフォルトの名無しさん (ワッチョイ fa2f-LqCg)
2020/08/03(月) 21:49:07.37ID:QvK0nIgr0 >>773
自分で考える気なさそうだな
その拾ってきたコードのどこが分からんのだよ?
それが出来てそのあとどうする気か知らんが
CMBbox2.Clear
CMBbox2.AddItem (Sheet1.Cells(CMBbox1.ListIndex + 3, "L").Value)
これで、二度と来るな
自分で考える気なさそうだな
その拾ってきたコードのどこが分からんのだよ?
それが出来てそのあとどうする気か知らんが
CMBbox2.Clear
CMBbox2.AddItem (Sheet1.Cells(CMBbox1.ListIndex + 3, "L").Value)
これで、二度と来るな
778デフォルトの名無しさん (ワッチョイ d68e-nhZs)
2020/08/03(月) 21:53:06.72ID:cM5/PGxb0 また馬鹿が出てきた
779デフォルトの名無しさん (アウアウエー Sa22-gQbI)
2020/08/03(月) 23:28:33.53ID:lnWa4YOga780779 (アウアウエー Sa22-gQbI)
2020/08/03(月) 23:29:45.08ID:lnWa4YOga for とか、変数宣言とか抜けてるけど、そこはがんばって補完して。
781デフォルトの名無しさん (ドコグロ MM9a-kmLJ)
2020/08/03(月) 23:40:17.65ID:hUMORhdPM forなんて使わなくてもいいんじゃね
Sub test()
Dim i As Long
i = Cells(Rows.Count, 1).End(xlUp).Row
Range(Cells(i + 1, 1), Cells(i + 150, 1)) = Date
End Sub
Sub test()
Dim i As Long
i = Cells(Rows.Count, 1).End(xlUp).Row
Range(Cells(i + 1, 1), Cells(i + 150, 1)) = Date
End Sub
782779 (アウアウエー Sa22-gQbI)
2020/08/03(月) 23:44:27.96ID:lnWa4YOga なるほど、それはそうだ。
失礼しました。
失礼しました。
783デフォルトの名無しさん (ワッチョイ 5d01-UdrD)
2020/08/04(火) 00:12:45.83ID:brj+kH5Y0784デフォルトの名無しさん (ワッチョイ 5d01-UdrD)
2020/08/04(火) 00:17:38.16ID:brj+kH5Y0785デフォルトの名無しさん (ワッチョイ 017c-1vA1)
2020/08/04(火) 00:51:16.26ID:EtqCKuKj0 そういう感想が出るってことは、答えを出すための手順を全く自分で考えたことがないのでは…
786デフォルトの名無しさん (ワッチョイ d68e-nhZs)
2020/08/04(火) 01:06:00.92ID:8QweQuKX0 >>784
死ねよ
死ねよ
787デフォルトの名無しさん (ワッチョイ 79ce-Xvfy)
2020/08/04(火) 02:59:27.48ID:o+2T/J1u0 RNDやRAND関数は疑似乱数だから公平じゃない
そもそもコンピューターで乱数を生成するのは不可能
知識としては知ってるけど、代替手段を考えるのも面倒だしみんなRNDを使ってるから別にいいんだよ、ってこと
そもそもコンピューターで乱数を生成するのは不可能
知識としては知ってるけど、代替手段を考えるのも面倒だしみんなRNDを使ってるから別にいいんだよ、ってこと
788デフォルトの名無しさん (ワッチョイ 99da-xE3T)
2020/08/04(火) 05:51:29.11ID:HcyQwD6H0 そのための乱数シードってのがある
789デフォルトの名無しさん (ワッチョイ 794e-wQ/k)
2020/08/04(火) 06:07:40.64ID:vydsY05j0 同じシード与えたら同じ乱数列吐くよね。
で?何のためにあるって?
で?何のためにあるって?
790デフォルトの名無しさん (ブーイモ MM69-23Ku)
2020/08/04(火) 06:08:47.59ID:k3XyFiOUM もう最大限のことも自分で考えない馬鹿には答えなくて良くね?
多分何度も聞きに来るぞ
多分何度も聞きに来るぞ
791デフォルトの名無しさん (ブーイモ MM69-23Ku)
2020/08/04(火) 06:09:01.26ID:k3XyFiOUM 最低限ねw
792デフォルトの名無しさん (ワッチョイ 99da-xE3T)
2020/08/04(火) 06:22:53.51ID:HcyQwD6H0 >>789
同じシードを与えないためだろ、使い方知らんのか?
同じシードを与えないためだろ、使い方知らんのか?
793デフォルトの名無しさん (ワッチョイ 7a4f-1TqB)
2020/08/04(火) 07:55:02.77ID:aUyBUHRY0794デフォルトの名無しさん (ワッチョイ 5d01-UD9X)
2020/08/04(火) 09:23:33.17ID:Lx6h4ngm0 数式で「真の乱数」を発生させることは不可能でしょ
何かしらの雑音を外部から取り入れるならあり得るけど
しかし真の乱数と区別できない疑似乱数というのはある
たかだか数万個の乱数を発生させる程度なら普通にRANDで構わんよ
コンピューター空間内(例えば64bit)なら32bitの疑似乱数を発生させ得る
何かしらの雑音を外部から取り入れるならあり得るけど
しかし真の乱数と区別できない疑似乱数というのはある
たかだか数万個の乱数を発生させる程度なら普通にRANDで構わんよ
コンピューター空間内(例えば64bit)なら32bitの疑似乱数を発生させ得る
795デフォルトの名無しさん (アウアウウー Sa09-4GEq)
2020/08/04(火) 09:36:35.85ID:PJZofGaLa excel起動時のシードが同じだから変えたほうがいいとおもう
796デフォルトの名無しさん (ワッチョイ 7a4f-1TqB)
2020/08/04(火) 12:47:00.19ID:aUyBUHRY0 >>794
数式で真の乱数を発生させることが出来ないのは多分そう。ただ、それでも真の乱数は発生出来る。
ただ、かなり特殊な環境で言語的にもかなり特殊なのでVBAだけやってる人にはまぁ分からないだろう。
ただそれは、一度世界で最も出回ったハードであり言語でもあって、それでは乱数を求めるのに至極当たり前の方法でもあったから
このスレにいるおじいちゃんにはひょっとして知ってる人もいるかも知れない。
数式で真の乱数を発生させることが出来ないのは多分そう。ただ、それでも真の乱数は発生出来る。
ただ、かなり特殊な環境で言語的にもかなり特殊なのでVBAだけやってる人にはまぁ分からないだろう。
ただそれは、一度世界で最も出回ったハードであり言語でもあって、それでは乱数を求めるのに至極当たり前の方法でもあったから
このスレにいるおじいちゃんにはひょっとして知ってる人もいるかも知れない。
797デフォルトの名無しさん (ブーイモ MMbe-QJFZ)
2020/08/04(火) 12:54:38.56ID:2b7giDdtM 乱数こそこのスレで教えてくれた最高の武器
15個〜20個しか評価してないデータを50個に乱数使ってn増ししてるわ
プロシージャ名は乱れ雪月花にしといた
15個〜20個しか評価してないデータを50個に乱数使ってn増ししてるわ
プロシージャ名は乱れ雪月花にしといた
798デフォルトの名無しさん (JP 0H62-3SEW)
2020/08/04(火) 13:32:34.79ID:Z82jJjcAH 学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など
simulationライブラリで純粋な関数式プログラミングをする
UIライブラリ (C#, 2D) を作ったよ
連続と離散を統一した!
4Dエンジン
matrixのライブラリ
ある強力なFor関数
SQLライブラリ
☆ VM + ASM を書いた (C#, DX) * x86 ではない!
ttp://up.x0000.net/files/TSimulang.zip
☆ malloc / free を実装してみた (C#)
ttp://up.x0000.net/files/TMallocTest.zip
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など
simulationライブラリで純粋な関数式プログラミングをする
UIライブラリ (C#, 2D) を作ったよ
連続と離散を統一した!
4Dエンジン
matrixのライブラリ
ある強力なFor関数
SQLライブラリ
☆ VM + ASM を書いた (C#, DX) * x86 ではない!
ttp://up.x0000.net/files/TSimulang.zip
☆ malloc / free を実装してみた (C#)
ttp://up.x0000.net/files/TMallocTest.zip
799デフォルトの名無しさん (ワッチョイ fa7f-pv2R)
2020/08/04(火) 20:23:21.05ID:/v2mWUPK0 2016使ってるけど、いつの間にかSORTBYとかFILTERとか使えるようになってるのな。
800デフォルトの名無しさん (ワッチョイ fa42-8P+6)
2020/08/04(火) 20:58:22.81ID:ExHQkzho0 そもそも乱数に偏りがあろうと応募者が狙った並びでない時点で機会は公平だけどな
801デフォルトの名無しさん (ワッチョイ 99da-xE3T)
2020/08/04(火) 21:08:04.57ID:HcyQwD6H0 決まった番号がでるとわかっているからその番号に身内を入れて置けるわな
802デフォルトの名無しさん (アウアウウー Sa55-TvuW)
2020/08/05(水) 07:02:57.17ID:JB7qoIQVa >>797
偏差値低くね?
偏差値低くね?
803デフォルトの名無しさん (ワッチョイ 99da-e++8)
2020/08/06(木) 11:58:31.88ID:ix60cQMV0 乱数で疑似データをつくるとばらつきが均等になるから偏差を求めたときに不自然に広がるよね
804デフォルトの名無しさん (ワッチョイ ebcc-e++8)
2020/08/06(木) 13:28:48.79ID:LOZz8PJN0 乱数2つ使うといいぞ
805デフォルトの名無しさん (バットンキン MM2d-6wop)
2020/08/07(金) 19:45:16.94ID:Gk+vywdrM スレチだったらスマソだけど、excelのスピル?のせいで、ver違うexcel間で共有してたファイルが勝手に配列やら@やら数式が変換されてバグってんだけど、これ無効にできないの?
806デフォルトの名無しさん (アメ MM75-cUya)
2020/08/07(金) 20:09:47.44ID:l761nrW2M807デフォルトの名無しさん (ワッチョイ eb63-FoHg)
2020/08/07(金) 20:45:55.98ID:Ojdjt83K0 できないの?
808デフォルトの名無しさん (ワッチョイ 134f-RXr9)
2020/08/07(金) 20:47:34.25ID:SPZQdxGT0809デフォルトの名無しさん (バットンキン MM2d-6wop)
2020/08/07(金) 21:11:23.51ID:Gk+vywdrM え・・・まじで無理なん?
おわってんな
おわってんな
810デフォルトの名無しさん (ワッチョイ 6192-tlsv)
2020/08/07(金) 21:38:31.44ID:CC9P+z2z0 最近の機能の不具合だから知らねってことやろ
811デフォルトの名無しさん (ワッチョイ 0101-FoHg)
2020/08/07(金) 22:08:09.38ID:TxGR6Whm0 旧バージョンの配列式に勝手に@が付くのは仕様じゃねえの
旧verの {=a1:a3} が新verでは =@a1:a3 に変換される
新verのスピル式 =a1:a3 は旧verでは {=a1:a3} に
VBA的にはFormulaプロパティとFormula2プロパティを使い分けることによって新旧verどっちにするかを指定できる
旧verの {=a1:a3} が新verでは =@a1:a3 に変換される
新verのスピル式 =a1:a3 は旧verでは {=a1:a3} に
VBA的にはFormulaプロパティとFormula2プロパティを使い分けることによって新旧verどっちにするかを指定できる
812デフォルトの名無しさん (JP 0Ha3-3Z56)
2020/08/08(土) 13:26:33.40ID:LUeSHsN4H パーフェクトExcelVBAの初版本の正誤表とサンプルコードってどこかにありませんか?
813デフォルトの名無しさん (ワッチョイ 297c-2X+j)
2020/08/08(土) 14:27:44.52ID:KW6vxjpw0 出版社に聞いたら
814デフォルトの名無しさん (ワッチョイ 311a-3Z56)
2020/08/08(土) 15:27:34.88ID:QEOcQPDQ0 >>813
たし蟹
たし蟹
815デフォルトの名無しさん (ワッチョイ 6961-5k5c)
2020/08/09(日) 10:06:54.07ID:IyDcd9Ex0 コレクションにaddしたシートだけを一発で選択するにはどうしたら良いですか?
816デフォルトの名無しさん (ワッチョイ 59ce-IIsV)
2020/08/09(日) 10:50:04.26ID:Krh2xN+N0 >>815
addしたあとから調べる方法はないからaddする時に変数に覚えておくしかない
addしたあとから調べる方法はないからaddする時に変数に覚えておくしかない
817デフォルトの名無しさん (ワッチョイ 13ad-e++8)
2020/08/09(日) 13:28:26.53ID:w6SyFcxE0 セルA1~A5に1~5が入っていて、5個のaverage=3ですが、
1) 複数の連続セルを選択することで同じ動作をするfunction
2) function 自作平均値(セルを1個指定する as ???, 上のセル数 as byte, 下のセル数 as byte) as double
で、=自作平均値(A3, 2, 2) としたら同じ結果を得る関数
ってそれぞれどう書けばよいでしょうか。
値を直接入力する予定はなく、セルアドレスを取得できれよいかと思いますが、
方法がわかりません。
参考urlでかまいませんので教えてください。
1) 複数の連続セルを選択することで同じ動作をするfunction
2) function 自作平均値(セルを1個指定する as ???, 上のセル数 as byte, 下のセル数 as byte) as double
で、=自作平均値(A3, 2, 2) としたら同じ結果を得る関数
ってそれぞれどう書けばよいでしょうか。
値を直接入力する予定はなく、セルアドレスを取得できれよいかと思いますが、
方法がわかりません。
参考urlでかまいませんので教えてください。
818デフォルトの名無しさん (ワッチョイ 59ce-IIsV)
2020/08/09(日) 13:55:27.58ID:Krh2xN+N0 >>817
自作の関数の中で、ワークシート関数とまったく同じ結果が欲しいなら、Application.WorkSheetfunctionを使うのが一番確実
参考サイトに基本的な作り方は書いてあるから、計算式の部分だけ自分で作り直せばいい
https://kokodane.com/tec3_3.htm
自作の関数の中で、ワークシート関数とまったく同じ結果が欲しいなら、Application.WorkSheetfunctionを使うのが一番確実
参考サイトに基本的な作り方は書いてあるから、計算式の部分だけ自分で作り直せばいい
https://kokodane.com/tec3_3.htm
819デフォルトの名無しさん (ワッチョイ 311a-3Z56)
2020/08/09(日) 21:56:13.30ID:KZ1iPV5I0 ITに疎いクライアントのために
デモ用のVBAが動作しているところ録画して見せたいのですが
そのために向いているツールとかありますか?
デモ用のVBAが動作しているところ録画して見せたいのですが
そのために向いているツールとかありますか?
820デフォルトの名無しさん (ワッチョイ 6192-tlsv)
2020/08/09(日) 22:02:16.81ID:CWT5uO5H0 まずは標準のステップ記録ツールでダメな点を書けよ
821デフォルトの名無しさん (ワッチョイ 1b8c-Ea0s)
2020/08/09(日) 23:01:18.40ID:1ZjA1+PB0 >>817
Function 自作平均値(セルを1個指定するAs Range, 上のセル数, 下のセル数)
自作平均値 = Application.WorksheetFunction.Average(セルを1個指定する.Offset(-上のセル数).Resize(上のセル数 + 下のセル数 + 1).Value)
End Function
文章が意味不明なんだけどこんな感じでいいの?
Function 自作平均値(セルを1個指定するAs Range, 上のセル数, 下のセル数)
自作平均値 = Application.WorksheetFunction.Average(セルを1個指定する.Offset(-上のセル数).Resize(上のセル数 + 下のセル数 + 1).Value)
End Function
文章が意味不明なんだけどこんな感じでいいの?
822デフォルトの名無しさん (ワッチョイ 59ce-IIsV)
2020/08/10(月) 01:01:45.89ID:rZUUjilg0 >>819
Excelの画面をビデオ録画する操作はExcelを起動してから田+Alt+R
ただしVBEのウィンドウは開いても重ねても録画されないので、ワークシート上にマクロの起動ボタンを置いておく必要がある
Excelの画面をビデオ録画する操作はExcelを起動してから田+Alt+R
ただしVBEのウィンドウは開いても重ねても録画されないので、ワークシート上にマクロの起動ボタンを置いておく必要がある
823デフォルトの名無しさん (ワッチョイ d101-Piju)
2020/08/10(月) 06:44:41.63ID:2p1s3ccJ0824デフォルトの名無しさん (ワッチョイ a15f-3YTp)
2020/08/10(月) 08:03:08.52ID:RlCz4Cin0 822で解決してる内容を間違って紹介するの巻
825デフォルトの名無しさん (ブーイモ MM85-tlsv)
2020/08/10(月) 08:12:31.43ID:3XgF7vK3M >>820の時点で普通は調べりゃわかる
826デフォルトの名無しさん (ワッチョイ 8191-hkmR)
2020/08/10(月) 08:49:14.88ID:BA9+NJPC0 >>815
そういう時はDictionaryにすれば良いんでね?
そういう時はDictionaryにすれば良いんでね?
827デフォルトの名無しさん (ワッチョイ 8191-hkmR)
2020/08/10(月) 08:51:12.59ID:BA9+NJPC0 >>819
そのVBAを自動実行するVBAを書く。
そのVBAを自動実行するVBAを書く。
828デフォルトの名無しさん (アウアウウー Sa55-h0ig)
2020/08/11(火) 02:22:17.18ID:w/eGi/vSa VBAの知識は全く無いけど無駄な事は少しでも省きたい
そこで質問なのですが、複数の結合されたセルの値を一括でクリアしたい時
Range(“A1”).MergeArea.ClearContents
Range(“A2”).MergeArea.ClearContents
Range(“A3”).MergeArea.ClearContents
Range(“A4”).MergeArea.ClearContents
ひたすら続く
これを短くするにはどうすれば良いでしょうか?
そこで質問なのですが、複数の結合されたセルの値を一括でクリアしたい時
Range(“A1”).MergeArea.ClearContents
Range(“A2”).MergeArea.ClearContents
Range(“A3”).MergeArea.ClearContents
Range(“A4”).MergeArea.ClearContents
ひたすら続く
これを短くするにはどうすれば良いでしょうか?
829デフォルトの名無しさん (ワッチョイ eb63-QZCj)
2020/08/11(火) 02:42:12.83ID:biGjq8v+0 A1:A1000
830デフォルトの名無しさん (アウアウウー Sa55-h0ig)
2020/08/11(火) 03:03:48.27ID:w/eGi/vSa あーっとすみません
AはBと連結していますのでそれぞれが横に連結しています
AはBと連結していますのでそれぞれが横に連結しています
831デフォルトの名無しさん (ワッチョイ eb8e-bBGy)
2020/08/11(火) 03:10:45.62ID:iwyIkneF0 >>830
死ね
死ね
832デフォルトの名無しさん (ワッチョイ 59ce-IIsV)
2020/08/11(火) 03:24:29.64ID:gr6gl0bw0 >>828
まずセルの結合が無駄の元だから禁止するのが一番の早道
まずセルの結合が無駄の元だから禁止するのが一番の早道
833デフォルトの名無しさん (アウアウウー Sa55-h0ig)
2020/08/11(火) 03:32:11.78ID:w/eGi/vSa834デフォルトの名無しさん (ワッチョイ 0101-vCTi)
2020/08/11(火) 07:15:12.76ID:MYNVwvse0 悪いけどこの程度のこと質問するようじゃ手でやったほうが早いと思う
該当セルを全部選択して右クリックから値のクリア
該当セルを全部選択して右クリックから値のクリア
835デフォルトの名無しさん (ワッチョイ 895f-gCeJ)
2020/08/11(火) 07:29:46.25ID:QzKTaZ840 >>834
それをマクロの記録で記録するのが一番楽だわな
それをマクロの記録で記録するのが一番楽だわな
836デフォルトの名無しさん (ワッチョイ 0101-zaql)
2020/08/11(火) 09:13:15.51ID:MYNVwvse0 >>835
この程度なら、毎回やるにしてもマクロ使わずに手でやって余裕でできるレベルだろ
この程度なら、毎回やるにしてもマクロ使わずに手でやって余裕でできるレベルだろ
837デフォルトの名無しさん (ワッチョイ 9b02-e++8)
2020/08/11(火) 09:43:23.03ID:Y2BcIsaJ0 できるかできないかじゃないのがわからない奴
838デフォルトの名無しさん (アウアウウー Sa55-g1pd)
2020/08/11(火) 10:26:55.02ID:XBdR516ja839デフォルトの名無しさん (ワッチョイ 297c-2X+j)
2020/08/11(火) 12:32:13.53ID:Tr96IgUh0 range("a1:最後").value=emptyじゃだめなのか
840デフォルトの名無しさん (ワッチョイ 9b90-e++8)
2020/08/11(火) 12:34:29.17ID:LWJewwPf0 >>828
Dim i As Long
Dim lngMaxRow As Long
'/// 最終行取得
lngMaxRow = ActiveSheet.Range("A65000").End(xlUp).Row
'/// ループ処理
For i = 1 To lngMaxRow
ActiveSheet.Range("A" & i).MergeArea.ClearContents
Next i
Dim i As Long
Dim lngMaxRow As Long
'/// 最終行取得
lngMaxRow = ActiveSheet.Range("A65000").End(xlUp).Row
'/// ループ処理
For i = 1 To lngMaxRow
ActiveSheet.Range("A" & i).MergeArea.ClearContents
Next i
841デフォルトの名無しさん (スプッッ Sda3-IIsV)
2020/08/11(火) 14:42:39.58ID:GML8Ehqkd .Clear と .ClearContents と .Value=Empty の違いがわからん
これをマウスやキーボードで再現する方法も
たとえばセルを選択してDeleteキーはどれに相当?
これをマウスやキーボードで再現する方法も
たとえばセルを選択してDeleteキーはどれに相当?
842デフォルトの名無しさん (ワッチョイ 1302-2X+j)
2020/08/11(火) 15:03:15.53ID:3p+RdAeo0 Clearはセルに入力されてる数式や値、そして設定されてる書式もすべて消す
.ClearContents は数式と値のみクリア、書式は残る
.Value=Emptyはニュアンスが逆で"何も無いを入力"、つまり消す。.ClearContentsと同じ
deleteキーは.ClearContentsや.Value=Emptyと同じ
.ClearContents は数式と値のみクリア、書式は残る
.Value=Emptyはニュアンスが逆で"何も無いを入力"、つまり消す。.ClearContentsと同じ
deleteキーは.ClearContentsや.Value=Emptyと同じ
843デフォルトの名無しさん (ブーイモ MM85-HICl)
2020/08/11(火) 15:15:55.64ID:KT452e/aM 不規則な結合セルがあると .MergeArea.ClearContentsはエラーになるけど .Value = Emptyなら動くから>>828はRange("A:A").Value = Emptyの一行で解決ってこと
844デフォルトの名無しさん (ワッチョイ 9bf7-ADi0)
2020/08/11(火) 15:48:36.99ID:QMl7gTyj0 foreachやればええやん
845デフォルトの名無しさん (ワッチョイ 2e7b-PxzN)
2020/08/12(水) 02:04:20.40ID:ArSORnRx0 >>834-844 ありがとうございます!
皆さんが言うように全くの知識ゼロですが色々検索してなんとか思った通りのボタンが完成しました。
しかし全角やらスペースやら分かり辛いプログラムって難しいですね...
皆さんが言うように全くの知識ゼロですが色々検索してなんとか思った通りのボタンが完成しました。
しかし全角やらスペースやら分かり辛いプログラムって難しいですね...
846デフォルトの名無しさん (ワッチョイ ade6-p0wA)
2020/08/12(水) 20:55:54.61ID:qkNQ+uZ00 赤線先生が手取り足取り教えてくれるのに何が不満だと申すのかこのガキは
847デフォルトの名無しさん (ワッチョイ 4549-p5K4)
2020/08/12(水) 23:02:53.31ID:Akz/zcS80 n行ごとにデータを拾って少し文字列等を足してからほかのシートに貼り付ける、
という作業を現在For文でやっています。行数が多いと多少時間がかかることも
あるので、配列でできないかと思い試してみたのですが、「n行ごと」の部分が
うまくいきません
Dim tmpArr(), tmp As Variant
Dim rowIndex, colIndex As Long
tmpArr = Worksheets(1).Range("A3:C101").Value
For rowIndex = 1 To UBound(tmpArr) - 2 Step 3
For colIndex = 1 To UBound(tmpArr, 2)
tmp = tmpArr(rowIndex, colIndex) & "結合データ"
tmpArr(rowIndex, colIndex) = tmp
Next
Next
Worksheets(2).Range("A3:C35").Value = tmpArr
上記の場合3行ごとに元の値に「結合データ」という文字列を足すことはできて
いるのですが、貼り付け先のシートに全行貼り付いてしまいます
3行ごとの場合に要らない2行目、3行目を除外して
Sheet1 1行目→Sheet2 1行目、Sheet1 4行目→Sheet2 2行目…
というように貼り付けるにはどこを変更したらいいでしょうか
貼り付けたあと要らない行を削除してみたのですが、却って時間がかかって
しまったため、それ以外の解決方法があれば教えてください、よろしくお願いします
という作業を現在For文でやっています。行数が多いと多少時間がかかることも
あるので、配列でできないかと思い試してみたのですが、「n行ごと」の部分が
うまくいきません
Dim tmpArr(), tmp As Variant
Dim rowIndex, colIndex As Long
tmpArr = Worksheets(1).Range("A3:C101").Value
For rowIndex = 1 To UBound(tmpArr) - 2 Step 3
For colIndex = 1 To UBound(tmpArr, 2)
tmp = tmpArr(rowIndex, colIndex) & "結合データ"
tmpArr(rowIndex, colIndex) = tmp
Next
Next
Worksheets(2).Range("A3:C35").Value = tmpArr
上記の場合3行ごとに元の値に「結合データ」という文字列を足すことはできて
いるのですが、貼り付け先のシートに全行貼り付いてしまいます
3行ごとの場合に要らない2行目、3行目を除外して
Sheet1 1行目→Sheet2 1行目、Sheet1 4行目→Sheet2 2行目…
というように貼り付けるにはどこを変更したらいいでしょうか
貼り付けたあと要らない行を削除してみたのですが、却って時間がかかって
しまったため、それ以外の解決方法があれば教えてください、よろしくお願いします
848デフォルトの名無しさん (ワッチョイ 623d-KAoe)
2020/08/12(水) 23:09:52.81ID:J7mAx2fT0 >>847
tmparrの要素数見てみ
もう1つ別に、貼り付け用のVariant型配列用意して新しく格納していかないとそりゃ空白行できるよ
それと、stepよりmodで条件分岐スキップさせる方がスマートじゃないかい
tmparrの要素数見てみ
もう1つ別に、貼り付け用のVariant型配列用意して新しく格納していかないとそりゃ空白行できるよ
それと、stepよりmodで条件分岐スキップさせる方がスマートじゃないかい
849デフォルトの名無しさん (ワッチョイ 45ce-p0wA)
2020/08/12(水) 23:38:22.31ID:neehvUDc0 >>847
こういうこと
あと、Dimの書き方もこうしないとだめ
Sub Macro1()
Dim tmpArr() As Variant, tmp As Variant
Dim rowIndex As Long, colIndex As Long
Dim arrIndex As Long ' 配列用のインデックス
tmpArr = Worksheets(1).Range("A3:C101").Value
arrIndex = 0
For rowIndex = 1 To UBound(tmpArr) - 2 Step 3 ' セルアドレスは3ずつ増やす
For colIndex = 1 To UBound(tmpArr, 2)
tmp = tmpArr(rowIndex, colIndex) & "結合データ"
tmpArr(arrIndex, colIndex) = tmp
Next
arrIndex = arrIndex + 1 ' 配列のインデックスは1ずつ増やす
Next
Worksheets(2).Range("A3:C35").Value = tmpArr
End Sub
こういうこと
あと、Dimの書き方もこうしないとだめ
Sub Macro1()
Dim tmpArr() As Variant, tmp As Variant
Dim rowIndex As Long, colIndex As Long
Dim arrIndex As Long ' 配列用のインデックス
tmpArr = Worksheets(1).Range("A3:C101").Value
arrIndex = 0
For rowIndex = 1 To UBound(tmpArr) - 2 Step 3 ' セルアドレスは3ずつ増やす
For colIndex = 1 To UBound(tmpArr, 2)
tmp = tmpArr(rowIndex, colIndex) & "結合データ"
tmpArr(arrIndex, colIndex) = tmp
Next
arrIndex = arrIndex + 1 ' 配列のインデックスは1ずつ増やす
Next
Worksheets(2).Range("A3:C35").Value = tmpArr
End Sub
850デフォルトの名無しさん (アウアウウー Saa5-KAoe)
2020/08/13(木) 00:14:44.45ID:6VU/YWxoa851デフォルトの名無しさん (ワッチョイ 45ce-p0wA)
2020/08/13(木) 00:25:56.44ID:87HjPNaJ0 >>850
そういう時はセル範囲を変数にして、どっちかのインデックスを3で割るか掛けるかすればいいんだよ
それならメンテは一箇所で済む
データの範囲をxlUpとかUsedRangeなどで調べたりテーブル化すれば全自動にもできる
そういう時はセル範囲を変数にして、どっちかのインデックスを3で割るか掛けるかすればいいんだよ
それならメンテは一箇所で済む
データの範囲をxlUpとかUsedRangeなどで調べたりテーブル化すれば全自動にもできる
852デフォルトの名無しさん (ワッチョイ 4549-p5K4)
2020/08/13(木) 01:36:11.66ID:cxZ8EfEa0 >>849
ありがとうございます
最初インデックスが有効範囲にないとエラーがでたので「arrIndex = 0」を
「arrIndex = 1」に変えたらできました
配列なので0から始まるということなのかと思ったんですが、1にしても
大丈夫なんでしょうか?出力した結果はForのものと同じだったので
貼り付け後に1行ずれるということはなさそうなんですが…
しかし確かに速いですね、配列
データを5000行×3列にしてテストしたら
For 約2.7秒
配列 約0.03秒
といった感じでした
>>850,851
コピー元のセル範囲は変数にして見出し行引いてnで割ったりして貼り付け先の
範囲を出してます
今回は決まった数字の方がいいかなと思って99行を3行ごとで33行、みたいに
してみました
ありがとうございます
最初インデックスが有効範囲にないとエラーがでたので「arrIndex = 0」を
「arrIndex = 1」に変えたらできました
配列なので0から始まるということなのかと思ったんですが、1にしても
大丈夫なんでしょうか?出力した結果はForのものと同じだったので
貼り付け後に1行ずれるということはなさそうなんですが…
しかし確かに速いですね、配列
データを5000行×3列にしてテストしたら
For 約2.7秒
配列 約0.03秒
といった感じでした
>>850,851
コピー元のセル範囲は変数にして見出し行引いてnで割ったりして貼り付け先の
範囲を出してます
今回は決まった数字の方がいいかなと思って99行を3行ごとで33行、みたいに
してみました
853デフォルトの名無しさん (ワッチョイ ad7c-s47K)
2020/08/13(木) 01:59:57.87ID:KWfn8cHZ0 >>852
tmpArrにセル内容入れた時のインデックスを確認すればわかる
tmpArrにセル内容入れた時のインデックスを確認すればわかる
854デフォルトの名無しさん (ワッチョイ 451c-p0wA)
2020/08/13(木) 11:07:02.86ID:rrpNLQgi0 環境
windows 10 64bit
office 365 64bit
string型変数strにスペースを埋める単純なコードです。
Sub test()
Dim num_i As Integer
Dim num_l As Long
Dim num_ll As LongPtr
Dim str As String
Debug.Print "integer"; Len(num_i); TypeName(num_i)
Debug.Print "long"; Len(num_l); TypeName(num_l)
Debug.Print "longptr"; Len(num_ll); TypeName(num_ll)
num_i = 16: num_l = 16: num_ll = 16
str = Space(num_i): Debug.Print ">>"; str; "<<"
str = Space(num_l): Debug.Print ">>"; str; "<<"
''動かない
'str = Space(num_ll): Debug.Print ">>"; str; "<<"
''動く
str = Space(CLng(num_ll)): Debug.Print ">>"; str; "<<"
End Sub
このように64bitに対応していない組み込み関数って結構あるんのだろうか・・・
いつからか忘れたけど、 64bit推奨しているなら、これぐらい対応しろよ、毎糞がぁぁあ
excelの64bit環境って現状こんなものなの?
windows 10 64bit
office 365 64bit
string型変数strにスペースを埋める単純なコードです。
Sub test()
Dim num_i As Integer
Dim num_l As Long
Dim num_ll As LongPtr
Dim str As String
Debug.Print "integer"; Len(num_i); TypeName(num_i)
Debug.Print "long"; Len(num_l); TypeName(num_l)
Debug.Print "longptr"; Len(num_ll); TypeName(num_ll)
num_i = 16: num_l = 16: num_ll = 16
str = Space(num_i): Debug.Print ">>"; str; "<<"
str = Space(num_l): Debug.Print ">>"; str; "<<"
''動かない
'str = Space(num_ll): Debug.Print ">>"; str; "<<"
''動く
str = Space(CLng(num_ll)): Debug.Print ">>"; str; "<<"
End Sub
このように64bitに対応していない組み込み関数って結構あるんのだろうか・・・
いつからか忘れたけど、 64bit推奨しているなら、これぐらい対応しろよ、毎糞がぁぁあ
excelの64bit環境って現状こんなものなの?
855デフォルトの名無しさん (ワッチョイ 4549-p5K4)
2020/08/13(木) 11:30:36.17ID:cxZ8EfEa0 >>853
インデックスを確認したところ
rowIndex 1→1→1→4→4→4→7→7→7
colIndex 1→2→3→1→2→3→1→2→3
arrIndex 1→1→1→2→2→2→3→3→3
というように変化していきましたので大丈夫そうです、ありがとうございました
インデックスを確認したところ
rowIndex 1→1→1→4→4→4→7→7→7
colIndex 1→2→3→1→2→3→1→2→3
arrIndex 1→1→1→2→2→2→3→3→3
というように変化していきましたので大丈夫そうです、ありがとうございました
856デフォルトの名無しさん (ワッチョイ e5da-p5K4)
2020/08/13(木) 11:34:45.35ID:25tyhxYJ0 コンパイルエラーじゃねーか、何を問題にしているのかわからん
857デフォルトの名無しさん (ワッチョイ c22f-178q)
2020/08/13(木) 12:50:45.70ID:2SQEG+lQ0 試してないから知らんけど
64ビット長の文字列とかサポートされてないから当然だと思うけどな
つか今のEXCELついに64ビットが規定になったのか
64ビット長の文字列とかサポートされてないから当然だと思うけどな
つか今のEXCELついに64ビットが規定になったのか
858デフォルトの名無しさん (ワッチョイ ad7c-s47K)
2020/08/13(木) 13:00:55.28ID:KWfn8cHZ0 >>855
いや、なんでインデックス0だとエラーになるかって話・・・
いや、なんでインデックス0だとエラーになるかって話・・・
859デフォルトの名無しさん (ワッチョイ 4549-p5K4)
2020/08/13(木) 14:08:49.69ID:cxZ8EfEa0 >>858
あ、そっちでしたか
エラーが出た状態のそれぞれのインデックスは
rowIndex 1
colIndex 1
arrIndex 0
でしたので、
tmpArr(arrIndex, colIndex) = tmp
のところが
tmpArr(0, 1) = tmp
になってエラー、ですかね?
あ、そっちでしたか
エラーが出た状態のそれぞれのインデックスは
rowIndex 1
colIndex 1
arrIndex 0
でしたので、
tmpArr(arrIndex, colIndex) = tmp
のところが
tmpArr(0, 1) = tmp
になってエラー、ですかね?
860デフォルトの名無しさん (ワッチョイ ad7c-s47K)
2020/08/13(木) 14:16:56.76ID:KWfn8cHZ0 >>859
tmpArrにインデックス0は存在しないのに指定するからエラーが出ていて、セル範囲を代入した時は1から始まることを知らなくても変数の状態をチェックすればすぐわかることだが、もしかしてローカルウィンドウとかを知らないパターン
tmpArrにインデックス0は存在しないのに指定するからエラーが出ていて、セル範囲を代入した時は1から始まることを知らなくても変数の状態をチェックすればすぐわかることだが、もしかしてローカルウィンドウとかを知らないパターン
861デフォルトの名無しさん (ワッチョイ 4549-p5K4)
2020/08/13(木) 14:35:55.00ID:cxZ8EfEa0 >>860
あんまり使いこなせてはいないですがローカルウィンドウは表示させています
849さんが教えてくれたコードの中でarrIndexを「0」に指定しているのにはなにか
理由があるんじゃないかと思ったんですが、書き間違いとかでしょうか?
あんまり使いこなせてはいないですがローカルウィンドウは表示させています
849さんが教えてくれたコードの中でarrIndexを「0」に指定しているのにはなにか
理由があるんじゃないかと思ったんですが、書き間違いとかでしょうか?
862デフォルトの名無しさん (ワッチョイ ad7c-s47K)
2020/08/13(木) 14:49:25.52ID:KWfn8cHZ0 >>861
意図は知らない
意図は知らない
863デフォルトの名無しさん (ワッチョイ e5da-p5K4)
2020/08/13(木) 18:33:06.86ID:25tyhxYJ0 >>861
そういうのスルーできないとこの先進まんよ
そういうのスルーできないとこの先進まんよ
864デフォルトの名無しさん (ワッチョイ 2e10-s47K)
2020/08/14(金) 07:43:46.87ID:whfJUs+50 VLOOKUPについての質問なんですが、
検索キー 検索範囲1 検索範囲2 産地
りんご りんご ぶどう 岡山産
みかん りんご 岡山産
いちご もも 岡山産
りんご ぶどう 山梨産
みかん なし 山梨産
いちご りんご 山梨産
りんごから別セルの検索範囲1を見た後に検索範囲2を見にいって産地の戻り値を得る関数を作りたいのですが、
検索キーのヒットで産地が重複した場合は表示を1度だけにして、期待する結果として「岡山県 山梨県」とだけ得られるような関数を作りたいです
VLOOKUPを&で繋げると「岡山県岡山県」と列の一番初めの戻り値しか得られません
VLOOKUP以外でもやり方があれば教えて頂ければ助かります
検索キー 検索範囲1 検索範囲2 産地
りんご りんご ぶどう 岡山産
みかん りんご 岡山産
いちご もも 岡山産
りんご ぶどう 山梨産
みかん なし 山梨産
いちご りんご 山梨産
りんごから別セルの検索範囲1を見た後に検索範囲2を見にいって産地の戻り値を得る関数を作りたいのですが、
検索キーのヒットで産地が重複した場合は表示を1度だけにして、期待する結果として「岡山県 山梨県」とだけ得られるような関数を作りたいです
VLOOKUPを&で繋げると「岡山県岡山県」と列の一番初めの戻り値しか得られません
VLOOKUP以外でもやり方があれば教えて頂ければ助かります
865デフォルトの名無しさん (ワッチョイ 4290-p5K4)
2020/08/14(金) 11:35:06.45ID:DbBU1lOD0 >>864 マクロ作りました。
最大100件までヒット可能です。
長くなって申し訳ありません。
ご参考までに。(1/3)
Option Explicit
'/// 変数定義
Public j As Long 'ヒット件数
Public strArray(99) As String 'ヒットした産地の配列
Sub Main()
Call 初期化
Call 検索処理("B", 2)
Call 検索処理("C", 1)
Call メッセージ
End Sub
最大100件までヒット可能です。
長くなって申し訳ありません。
ご参考までに。(1/3)
Option Explicit
'/// 変数定義
Public j As Long 'ヒット件数
Public strArray(99) As String 'ヒットした産地の配列
Sub Main()
Call 初期化
Call 検索処理("B", 2)
Call 検索処理("C", 1)
Call メッセージ
End Sub
866デフォルトの名無しさん (ワッチョイ 4290-p5K4)
2020/08/14(金) 11:35:39.43ID:DbBU1lOD0 Sub 初期化() '///グローバル変数の初期化 (2/3)
'/// 変数定義
Dim i As Long 'カウンタ
j = 0
For i = 0 To 99
strArray(i) = ""
Next i
End Sub
Sub 検索処理(pCol As String, pMovNum As Long)
'/// 変数定義
Dim i As Long 'カウンタ
Dim lngMaxRow As Long '処理数
Dim strKey As String '検索値
Dim strSanchi As String 'ワーク変数
'/// キー
strKey = ActiveSheet.Range("A2").Value
'/// 処理数
lngMaxRow = ActiveSheet.Range("B1000").End(xlUp).Row
'/// ループ
For i = 2 To lngMaxRow
If strKey = ActiveSheet.Range(pCol & i).Value Then
strSanchi = ActiveSheet.Range(pCol & i).Offset(0, pMovNum).Value
If 重複チェック(strSanchi, strArray()) = False Then
strArray(j) = strSanchi
j = j + 1
End If
End If
Next i
End Sub
'/// 変数定義
Dim i As Long 'カウンタ
j = 0
For i = 0 To 99
strArray(i) = ""
Next i
End Sub
Sub 検索処理(pCol As String, pMovNum As Long)
'/// 変数定義
Dim i As Long 'カウンタ
Dim lngMaxRow As Long '処理数
Dim strKey As String '検索値
Dim strSanchi As String 'ワーク変数
'/// キー
strKey = ActiveSheet.Range("A2").Value
'/// 処理数
lngMaxRow = ActiveSheet.Range("B1000").End(xlUp).Row
'/// ループ
For i = 2 To lngMaxRow
If strKey = ActiveSheet.Range(pCol & i).Value Then
strSanchi = ActiveSheet.Range(pCol & i).Offset(0, pMovNum).Value
If 重複チェック(strSanchi, strArray()) = False Then
strArray(j) = strSanchi
j = j + 1
End If
End If
Next i
End Sub
867デフォルトの名無しさん (ワッチョイ 4290-p5K4)
2020/08/14(金) 11:36:01.63ID:DbBU1lOD0 Function 重複チェック(pSanchi As String, pArray() As String) As Boolean(3/3)
'/// 変数定義
Dim i As Long 'カウンタ
'/// ループ
For i = 0 To 99
If pSanchi = pArray(i) Then
重複チェック = True
Exit Function
End If
Next i
重複チェック = False
End Function
Sub メッセージ()
'/// 変数定義
Dim i As Long 'カウンタ
Dim strAnswer As String 'ワーク変数
strAnswer = strArray(0)
'/// メッセージ出力
For i = 1 To j
If strArray(i) <> "" Then
strAnswer = strAnswer & "," & strArray(i)
End If
Next i
'/// 1件でもあれば表示
If j > 0 Then
MsgBox (strAnswer)
End If
End Sub
'/// 変数定義
Dim i As Long 'カウンタ
'/// ループ
For i = 0 To 99
If pSanchi = pArray(i) Then
重複チェック = True
Exit Function
End If
Next i
重複チェック = False
End Function
Sub メッセージ()
'/// 変数定義
Dim i As Long 'カウンタ
Dim strAnswer As String 'ワーク変数
strAnswer = strArray(0)
'/// メッセージ出力
For i = 1 To j
If strArray(i) <> "" Then
strAnswer = strAnswer & "," & strArray(i)
End If
Next i
'/// 1件でもあれば表示
If j > 0 Then
MsgBox (strAnswer)
End If
End Sub
868デフォルトの名無しさん (ワッチョイ ad7c-s47K)
2020/08/14(金) 12:26:16.36ID:RMq/G2m80 Dim obj As Object
Dim rng As Range
Set obj = CreateObject("Scripting.Dictionary")
For Each rng In Range(検索範囲)
If rng.Value = Range("a2").Value Then
With Cells(rng.Row, "d")
If obj.exists(.Value) = False Then obj.Add .Value, 0
End With
End If
Next
Range("e1").Resize(obj.Count).Value = WorksheetFunction.Transpose(obj.keys)
Set obj = Nothing
Dim rng As Range
Set obj = CreateObject("Scripting.Dictionary")
For Each rng In Range(検索範囲)
If rng.Value = Range("a2").Value Then
With Cells(rng.Row, "d")
If obj.exists(.Value) = False Then obj.Add .Value, 0
End With
End If
Next
Range("e1").Resize(obj.Count).Value = WorksheetFunction.Transpose(obj.keys)
Set obj = Nothing
870デフォルトの名無しさん (ワッチョイ 6eda-p0wA)
2020/08/16(日) 00:23:38.07ID:oP+sOQXV0 >>864
構造体使えば簡単に作れそうだけどね。
構造体使えば簡単に作れそうだけどね。
871デフォルトの名無しさん (ワッチョイ e5da-p5K4)
2020/08/16(日) 13:39:49.06ID:6OTbxtgn0 質問しないで自力でできるようになるのがまず先だろう
872デフォルトの名無しさん (ワッチョイ 9f40-JHA7)
2020/08/19(水) 20:44:10.60ID:1ghAy1sC0 スレ全否定で草
873デフォルトの名無しさん (ワッチョイ 7fd3-ri+I)
2020/08/20(木) 01:09:34.68ID:Qa4rAQro0 シート1のプルダウンから選択した結果(テキスト)を
シート2の任意のセルに表示させるにはどうすればいいですか?
シート2の任意のセルに表示させるにはどうすればいいですか?
874デフォルトの名無しさん (ワッチョイ 7f42-KCZZ)
2020/08/20(木) 07:05:04.54ID:UH//ZFwI0 リンクするセルに指定しておけば
875デフォルトの名無しさん (スプッッ Sd1f-POXI)
2020/08/24(月) 18:59:52.50ID:ga12x2Hwd A列には数字を手入力
B列には●があったりなかったり
B列に●がある場合A列に数字を(例えば100)入力するとメッセージボックス?がでて
「●があるから入力しちゃ駄目よ!どうしても"100"を入力したいの!?」
「OK」「キャンセル」
みたいにしたいんですがどーすればいいですか?
B列には●があったりなかったり
B列に●がある場合A列に数字を(例えば100)入力するとメッセージボックス?がでて
「●があるから入力しちゃ駄目よ!どうしても"100"を入力したいの!?」
「OK」「キャンセル」
みたいにしたいんですがどーすればいいですか?
876デフォルトの名無しさん (ワッチョイ ff02-YpYZ)
2020/08/24(月) 19:07:40.74ID:k+YcXwpu0 Worksheet_Changeイベントを使えばいいです
877デフォルトの名無しさん (ワッチョイ 1f7c-u2+K)
2020/08/24(月) 19:26:54.83ID:w4ZB1tmF0 >>875
データの入力規則のエラーメッセージ
データの入力規則のエラーメッセージ
878デフォルトの名無しさん (ワッチョイ 7f42-KCZZ)
2020/08/24(月) 20:16:24.02ID:pfMfCN200 1を入力した時点でメッセージボックスが出ると思うんだが10まではセーフで100だと確認のほうが良いのか
879デフォルトの名無しさん (スップ Sd1f-5gYb)
2020/08/24(月) 20:27:42.41ID:N/ceNi6Ud >>875だけどいい忘れてました
0を入力した場合はメッセージ出さずにそのまま0と入力
0以上(例えば200)を入力した場合は「●なんだから入力すんなボケ!どうしても"200"って入力したいの?」
「OK」「キャンセル」
みたいなね
0を入力した場合はメッセージ出さずにそのまま0と入力
0以上(例えば200)を入力した場合は「●なんだから入力すんなボケ!どうしても"200"って入力したいの?」
「OK」「キャンセル」
みたいなね
880デフォルトの名無しさん (スプッッ Sd9f-5gYb)
2020/08/24(月) 20:34:28.35ID:ZbbapVPTd OK押したらそのまま200がセルに入力される
キャンセル押したら""ね
キャンセル押したら""ね
881デフォルトの名無しさん (ワッチョイ 9f8e-NwtD)
2020/08/24(月) 20:35:32.06ID:C0VIZWNb0 馬鹿は条件を後で付け加える
882デフォルトの名無しさん (スプッッ Sd9f-5gYb)
2020/08/24(月) 20:36:54.05ID:ZbbapVPTd >>881
誹謗中傷?
誹謗中傷?
883デフォルトの名無しさん (ラクッペペ MM4f-NoNb)
2020/08/24(月) 20:42:38.20ID:hwq7Y5YHM メッセージボックスはうっとおしいからセルの色を変えるぐらいのほうが喜ばれるよ
884デフォルトの名無しさん (スプッッ Sd9f-5gYb)
2020/08/24(月) 20:46:47.07ID:ZbbapVPTd885デフォルトの名無しさん (ワッチョイ 1f7c-u2+K)
2020/08/24(月) 20:56:49.89ID:w4ZB1tmF0 数字以外を入力したら?
886デフォルトの名無しさん (スプッッ Sd1f-5gYb)
2020/08/24(月) 20:59:38.82ID:KH3D74B7d >>885
数字以外入力しません
数字以外入力しません
887デフォルトの名無しさん (ワッチョイ 1f7c-u2+K)
2020/08/24(月) 21:02:06.67ID:w4ZB1tmF0 自主的にしないのなら入力規則をユーザ設定にしてエラースタイルを注意でいいじゃんかと思うんだが
888デフォルトの名無しさん (スッップ Sd9f-5gYb)
2020/08/24(月) 21:19:01.81ID:hykwk2E+d889デフォルトの名無しさん (ワッチョイ 1f7c-u2+K)
2020/08/24(月) 21:58:37.53ID:w4ZB1tmF0 ●があるあったらダイアログ表示するだけ
890デフォルトの名無しさん (ワッチョイ 1f7c-u2+K)
2020/08/24(月) 21:58:57.09ID:w4ZB1tmF0 ●があったら
891デフォルトの名無しさん (ドコグロ MM7f-a78p)
2020/08/24(月) 22:34:30.60ID:6Nxhc9klM 個性的な物を作りたいのなら図形を使えば色も形も自由自在に作れる
892デフォルトの名無しさん (ワッチョイ ff63-3Lde)
2020/08/25(火) 07:27:56.68ID:Dix5Myuw0 Win10で、VBAを作っています。
テキストファイルをLine関数で1行ずつ読み込み
読んだ行にてInStr関数で円マーク(\)を検索
しています。
InStr(1, 検索対象, "\")
と書いています。
しかし\が無い行で「ある」と判定されているようです。
\にはエスケープ文字が必要だからではないかと思いますが
どう書いたら良いかわからず途方に暮れています。
どなたかご教示ください。
(文字コードで指定すれば良いようですが
他の担当者が理解できない可能性もあるので
別の方法も把握したく存じます)
テキストファイルをLine関数で1行ずつ読み込み
読んだ行にてInStr関数で円マーク(\)を検索
しています。
InStr(1, 検索対象, "\")
と書いています。
しかし\が無い行で「ある」と判定されているようです。
\にはエスケープ文字が必要だからではないかと思いますが
どう書いたら良いかわからず途方に暮れています。
どなたかご教示ください。
(文字コードで指定すれば良いようですが
他の担当者が理解できない可能性もあるので
別の方法も把握したく存じます)
893デフォルトの名無しさん (ワッチョイ ff02-YpYZ)
2020/08/25(火) 09:38:34.28ID:UEyqjSRY0 無いのにあると判定される行の文字列を教えて下さい
894デフォルトの名無しさん (ワッチョイ 7f80-6SBr)
2020/08/25(火) 09:40:05.96ID:j61R6fge0 instr特に問題なさそうですが。
ウォッチ式の想定外時検索対象文字列は晒せないのですか?
instr使わずに1文字ずつ取るとか?
ウォッチ式の想定外時検索対象文字列は晒せないのですか?
instr使わずに1文字ずつ取るとか?
895デフォルトの名無しさん (ワッチョイ 1f7c-u2+K)
2020/08/25(火) 10:33:08.00ID:JyPo3Qi40 >>892
されてるようですじゃなくてちゃんと確認して
されてるようですじゃなくてちゃんと確認して
896デフォルトの名無しさん (テテンテンテン MM4f-Is5t)
2020/08/25(火) 10:41:04.86ID:8u+D4XfyM >>893
海砂利水魚の水行末\n
海砂利水魚の水行末\n
897デフォルトの名無しさん (ワッチョイ ff02-YpYZ)
2020/08/25(火) 11:01:09.56ID:UEyqjSRY0 >>896
次の人どうぞ
次の人どうぞ
898デフォルトの名無しさん (テテンテンテン MM4f-Is5t)
2020/08/25(火) 11:14:02.60ID:HdlOc3e6M >>893
[壁]_・)_シン・シンギュラリティ¥n
[壁]_・)_シン・シンギュラリティ¥n
899デフォルトの名無しさん (ラクッペペ MM4f-pqEW)
2020/08/25(火) 12:47:56.13ID:LoAGT2GVM >>893
会社の住所です
一文字目が全角郵便マーク
2文字目が全角スペース
三文字目から半角数字で郵便番号です。
\と半角ハイフンの間を取り出す処理を
書いたところ
郵便番号最初の3桁、
ハイフンの手前まで
が取り出されますので
全角スペースが\マークとして
扱われてると思ってます
会社の住所です
一文字目が全角郵便マーク
2文字目が全角スペース
三文字目から半角数字で郵便番号です。
\と半角ハイフンの間を取り出す処理を
書いたところ
郵便番号最初の3桁、
ハイフンの手前まで
が取り出されますので
全角スペースが\マークとして
扱われてると思ってます
900デフォルトの名無しさん (テテンテンテン MM4f-Is5t)
2020/08/25(火) 12:58:49.60ID:KRGfI1UYM >>893
「\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
\と半角ハイフンの間を取り出す処理
を全角スペースが\マークとして扱われてると思ってます
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-」
「\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
\と半角ハイフンの間を取り出す処理
を全角スペースが\マークとして扱われてると思ってます
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-」
901デフォルトの名無しさん (ワッチョイ 7f2f-3Lde)
2020/08/25(火) 13:03:59.81ID:at7FUvm30902デフォルトの名無しさん (ワッチョイ ff02-YpYZ)
2020/08/25(火) 13:39:05.50ID:UEyqjSRY0 >>899
その説明だとコード晒してもらわないとわからん
住所そのまま晒してって言ってるんじゃなくて
別の文字に置き換えていいから同じフォーマットで
処理前後でどうなってほしい所がどうなってしまうのか書いてもらわないとわからない
その説明だとコード晒してもらわないとわからん
住所そのまま晒してって言ってるんじゃなくて
別の文字に置き換えていいから同じフォーマットで
処理前後でどうなってほしい所がどうなってしまうのか書いてもらわないとわからない
903デフォルトの名無しさん (ワッチョイ 1f7c-u2+K)
2020/08/25(火) 13:53:58.00ID:JyPo3Qi40 >>900
なんで想像するだけで実際の中身を確認ようとしないの
なんで想像するだけで実際の中身を確認ようとしないの
904デフォルトの名無しさん (ワッチョイ 1f7c-u2+K)
2020/08/25(火) 13:54:35.07ID:JyPo3Qi40905デフォルトの名無しさん (JP 0Hc3-n+O8)
2020/08/25(火) 14:14:41.86ID:NinLgEivH プログラムってのはなあ、思った通りには動かないもんなんだよ
いつでも書いた通りに動くだけ
いつでも書いた通りに動くだけ
906デフォルトの名無しさん (ワッチョイ 1fda-YpYZ)
2020/08/25(火) 14:23:43.06ID:QWQtRQIZ0 タブとか改行(CR+LF)とかバイナリデータが混ざっているとか機種依存文字とか
文字コードの違いとか色々あるからな
文字コードの違いとか色々あるからな
907デフォルトの名無しさん (ワッチョイ 7f2f-3Lde)
2020/08/25(火) 14:28:30.69ID:at7FUvm30 まあ一番怪しいのは、文字コード関係でテキストがちゃんと読めてない
ちゃんと読みこんだデータのバイナリ確認してみろ
ちゃんと読みこんだデータのバイナリ確認してみろ
908デフォルトの名無しさん (ワッチョイ 1f7c-u2+K)
2020/08/25(火) 14:43:48.86ID:JyPo3Qi40 line inputはSJISで読み込む
バイナリ確認しなくても元ファイルがSJISであればそれでいい
バイナリ確認しなくても元ファイルがSJISであればそれでいい
909デフォルトの名無しさん (ラクッペペ MM4f-pqEW)
2020/08/25(火) 15:50:41.61ID:LoAGT2GVM すみません892です
デバッガで見たら
全部の行で1を返してました
つまり全行、先頭は\マークみたいです
1文字目は無視するようにしたら
意図通りの動きになりました
デバッガで見たら
全部の行で1を返してました
つまり全行、先頭は\マークみたいです
1文字目は無視するようにしたら
意図通りの動きになりました
910デフォルトの名無しさん (ワッチョイ ff02-YpYZ)
2020/08/25(火) 16:00:19.40ID:UEyqjSRY0911デフォルトの名無しさん (ワッチョイ 1f7c-u2+K)
2020/08/25(火) 16:23:37.10ID:JyPo3Qi40 先頭が\かどうかすらも確認しないのか…
912デフォルトの名無しさん (オッペケ Sr73-rg60)
2020/08/25(火) 17:36:53.32ID:Lm28KJF/r VBAからPowerShellで外部コマンドを実行して出力内容を加工したいのですが、うまくいきません
現在は、Execの引数に下記のように書いてます
powershell -Command "& Invoke-Expression 'コマンドのパス\コマンド.exe' -option1 -option2 "foo bar" >>'一時ファイル.txt'"
どうしたらよいでしょうか
現在は、Execの引数に下記のように書いてます
powershell -Command "& Invoke-Expression 'コマンドのパス\コマンド.exe' -option1 -option2 "foo bar" >>'一時ファイル.txt'"
どうしたらよいでしょうか
913デフォルトの名無しさん (アウアウウー Sa63-3MaI)
2020/08/25(火) 18:00:08.63ID:YUvg5uyAa >>909
1件目でも入っているのかな?
1件目でも入っているのかな?
914デフォルトの名無しさん (アウアウカー Sa13-tqqx)
2020/08/25(火) 18:12:08.06ID:mPnhNdWta テキスト全行読み込みしてsplitしてる説
んで\rでsplitして\nが先頭に来てるんじゃね
んで\rでsplitして\nが先頭に来てるんじゃね
915デフォルトの名無しさん (ワッチョイ 9f40-JHA7)
2020/08/25(火) 20:46:10.83ID:+ct4ya2Y0 >>912
Exec("powershell -Command Invoke-Expression 'コマンドのパス\コマンド.exe' -option1 -option2 'foo bar' >> '一時ファイル.txt'")
Exec("powershell -Command Invoke-Expression 'コマンドのパス\コマンド.exe' -option1 -option2 'foo bar' >> '一時ファイル.txt'")
916デフォルトの名無しさん (ラクッペペ MM4f-NoNb)
2020/08/25(火) 20:53:13.85ID:4vNIHvGrM shell でいいのにわざわざ外部オブジェクト使う人っているよね
917デフォルトの名無しさん (アウアウウー Sa63-/2iM)
2020/08/25(火) 21:28:28.78ID:n9RIifSya >>914
改行コードは別に文字列としての\が入ってる訳じゃないだろ
改行コードは別に文字列としての\が入ってる訳じゃないだろ
918デフォルトの名無しさん (オッペケ Sr73-rg60)
2020/08/25(火) 22:12:02.97ID:Lm28KJF/r >>915
ありがとうございます
もう一点よろしいでしょうか
標準出力にUnicodeで吐き出すコンソールアプリの出力を、Wscript.Shell.ExecのStdOutを使用して読み込みたいのですが、文字化けします
個人情報を扱うのでできれば一時ファイルを作らずに作業したいのですが、Unicodeの標準出力を直接読み込む方法は無いでしょうか
ありがとうございます
もう一点よろしいでしょうか
標準出力にUnicodeで吐き出すコンソールアプリの出力を、Wscript.Shell.ExecのStdOutを使用して読み込みたいのですが、文字化けします
個人情報を扱うのでできれば一時ファイルを作らずに作業したいのですが、Unicodeの標準出力を直接読み込む方法は無いでしょうか
919デフォルトの名無しさん (テテンテンテン MM4f-Is5t)
2020/08/25(火) 22:59:12.42ID:8Q4E/UJjM920デフォルトの名無しさん (ワッチョイ 118e-WkEz)
2020/08/26(水) 01:37:45.74ID:zCSTsYdn0 >>918
スレチだろ、厚かましい
スレチだろ、厚かましい
921デフォルトの名無しさん (ワッチョイ 452c-VQ5f)
2020/08/26(水) 02:00:19.04ID:BpaQECb00 >>918
オプションなどで、文字コードを指定できないの?
オプションなどで、文字コードを指定できないの?
922デフォルトの名無しさん (ワッチョイ 7901-yRqa)
2020/08/26(水) 02:56:47.46ID:oEB3gdtA0 これから新規に作る形式の文字コードは、UTF-8とGB18030の二択じゃないでしょうかね。
923デフォルトの名無しさん (オッペケ Sr51-cLD7)
2020/08/26(水) 11:13:08.29ID:DBm/bRJ+r >>921
調べたところわかりませんでした
Unicodeの文字が欠落するのでSJISに変換して流すのも避けたいです
一晩考えてPowerShell側でBase64エンコードしてからVBA側でデコードしてみようと考え直しました
失礼しました
調べたところわかりませんでした
Unicodeの文字が欠落するのでSJISに変換して流すのも避けたいです
一晩考えてPowerShell側でBase64エンコードしてからVBA側でデコードしてみようと考え直しました
失礼しました
924デフォルトの名無しさん (オッペケ Sr51-cLD7)
2020/08/26(水) 11:25:02.41ID:DBm/bRJ+r ちなみに、Wscript.Shell.Execに渡せるコマンドラインって255文字までのような制限があるのでしょうか
コンソール側で動いたコマンドラインがExecからだと動かなかったりするので
コンソール側で動いたコマンドラインがExecからだと動かなかったりするので
925デフォルトの名無しさん (ワッチョイ 61da-1etN)
2020/08/26(水) 19:01:16.17ID:vVfdbk8D0926デフォルトの名無しさん (ワッチョイ 61da-1etN)
2020/08/26(水) 19:03:04.71ID:vVfdbk8D0 powershellか。
ごめん、関係ないわ。
ごめん、関係ないわ。
927デフォルトの名無しさん (オッペケ Sr51-cLD7)
2020/08/26(水) 19:09:15.11ID:DBm/bRJ+r >>926
ありがとうございます。
PowerShell上で動作を確認したワンライナースクリプトをExecで実行したら動かなかったもので、特に根拠があって疑ってる訳じゃないです。
こちらはPS1ファイルを用意して実行することにしました。
ありがとうございます。
PowerShell上で動作を確認したワンライナースクリプトをExecで実行したら動かなかったもので、特に根拠があって疑ってる訳じゃないです。
こちらはPS1ファイルを用意して実行することにしました。
928デフォルトの名無しさん (オッペケ Sr51-cLD7)
2020/08/26(水) 19:15:01.39ID:DBm/bRJ+r ところで、ADODB.Streamに書き込んだテキストをCSVとしてパースしてRecordSetに読み込む方法をどなたかご存知ないでしょうか
一時ファイルを保存すればいいのですがオンメモリでやれたらそちらの方がありがたいです
同じADODBクラスなので方法がありそうだなと思い調べてみたのですが…
一時ファイルを保存すればいいのですがオンメモリでやれたらそちらの方がありがたいです
同じADODBクラスなので方法がありそうだなと思い調べてみたのですが…
929デフォルトの名無しさん (ワッチョイ 118e-WkEz)
2020/08/26(水) 20:35:45.89ID:zCSTsYdn0 >>928
厚かましいスレチはいい加減にしろ
厚かましいスレチはいい加減にしろ
930デフォルトの名無しさん (ワッチョイ ae02-1etN)
2020/08/26(水) 20:40:23.56ID:SKzt3LIS0 ノイズが発生してるけど無視していいよ
知ってて答えたい人が答えると思うし
知ってて答えたい人が答えると思うし
931デフォルトの名無しさん (ワッチョイ 61da-1etN)
2020/08/26(水) 22:47:53.03ID:vVfdbk8D0932デフォルトの名無しさん (ワッチョイ 0de6-xiBb)
2020/08/26(水) 22:50:24.69ID:Xm7NIhRp0 できないわけじゃない
1文字づつ解析とか馬鹿らしくてやってられないから一発でできる方法を聞いておる
1文字づつ解析とか馬鹿らしくてやってられないから一発でできる方法を聞いておる
933デフォルトの名無しさん (ワッチョイ 02b5-lmXr)
2020/08/26(水) 22:52:29.85ID:FaIObZsK0 一年他部署に応援行ってて戻ってきたが
その間に転属されてた人に
これがあれば一覧のデータを一気に出力できるからマクロの使い方だけは覚えてね
マクロとかわかる?とにかく使い方おぼえて
と言われた
俺が応援行く前に作って課に展開したマクロやんけ…
その間に転属されてた人に
これがあれば一覧のデータを一気に出力できるからマクロの使い方だけは覚えてね
マクロとかわかる?とにかく使い方おぼえて
と言われた
俺が応援行く前に作って課に展開したマクロやんけ…
934デフォルトの名無しさん (ベーイモ MM16-4W6K)
2020/08/27(木) 10:45:53.98ID:M3gK7ks0M strconvで文字列"試験"をUnicodeに変換すると、変な文字に変換されるんだけど解決策ありますか?
StrConv(StrConv("試験",vbUnicode),vbFromUnicode)
の結果が、"試験"であってほしいんだけど、別のよくわからない文字に変換される
StrConv(StrConv("試験",vbUnicode),vbFromUnicode)
の結果が、"試験"であってほしいんだけど、別のよくわからない文字に変換される
935デフォルトの名無しさん (オッペケ Sr51-cLD7)
2020/08/27(木) 10:56:45.12ID:EdbkG5X3r >>931
情報小出しですみません。
UTF8で標準出力に個人情報含むCSVを吐き出すコンソールアプリがありまして、それを一時ファイルを使用せずにVBAに読み込むのが目的です。
Wscript.Exec.StdOutを使用したところUTF8が文字化けしてしまい、PowerShell上でByte配列化→Base64エンコードして吐き出すことで、VBAでCSVのStringを得るところまではできました。
情報小出しですみません。
UTF8で標準出力に個人情報含むCSVを吐き出すコンソールアプリがありまして、それを一時ファイルを使用せずにVBAに読み込むのが目的です。
Wscript.Exec.StdOutを使用したところUTF8が文字化けしてしまい、PowerShell上でByte配列化→Base64エンコードして吐き出すことで、VBAでCSVのStringを得るところまではできました。
936デフォルトの名無しさん (ワッチョイ 0d7c-JMbW)
2020/08/27(木) 10:58:22.12ID:W5jLLhyA0 >>934
shiftjisで表示してんじゃないの
shiftjisで表示してんじゃないの
937デフォルトの名無しさん (オッペケ Sr51-cLD7)
2020/08/27(木) 11:04:53.94ID:EdbkG5X3r VBAでBase64デコードしたByte配列をADODB.Streamにバイナリ書き込み・UTF8読み込みすることでString変数に収めるところまでは行けました。
ここから、ADODB.Connectionを使用してADODB.Streamの内容をCSVとしてパースしたいのですが、ネットで見られるサンプルコードはファイルを読み込むものばかりです。
試しにADODB.Connection.Open ADODB.Streamとしてみましたが、うまく行きません。
現在ADODBのリファレンスに目を通していて、関係の有りそうなプロパティを見て回っているのですが、方法をご存知の方いらっしゃればご教示いただけるとありがたいです。
ここから、ADODB.Connectionを使用してADODB.Streamの内容をCSVとしてパースしたいのですが、ネットで見られるサンプルコードはファイルを読み込むものばかりです。
試しにADODB.Connection.Open ADODB.Streamとしてみましたが、うまく行きません。
現在ADODBのリファレンスに目を通していて、関係の有りそうなプロパティを見て回っているのですが、方法をご存知の方いらっしゃればご教示いただけるとありがたいです。
938デフォルトの名無しさん (ワッチョイ ae02-1etN)
2020/08/27(木) 11:29:45.37ID:h0aAGvNz0939デフォルトの名無しさん (ワッチョイ 452c-VQ5f)
2020/08/27(木) 11:35:18.54ID:UMnMnU6h0 WSH は、CP932 だけじゃないの?
もうWSHは、Microsoft もサポートしていないのでは?
WSH, VBScript のスレのスレ主、ピッコロ大魔王に聞けば?
漏れは、Ruby スクリプトをダブルクリックで起動したい場合に、WSHを使っているけど、
その際、Ruby側で、CP932・UTF-8 を変換している。
または、NKF というモジュールもある
もうWSHは、Microsoft もサポートしていないのでは?
WSH, VBScript のスレのスレ主、ピッコロ大魔王に聞けば?
漏れは、Ruby スクリプトをダブルクリックで起動したい場合に、WSHを使っているけど、
その際、Ruby側で、CP932・UTF-8 を変換している。
または、NKF というモジュールもある
940デフォルトの名無しさん (ドコグロ MM22-YRmH)
2020/08/27(木) 11:58:06.46ID:tH7sxKPhM >>934
そりゃそうだろ…
Unicode文字列をShift-JISだと思ってUnicodeに変換して、それを更にUnicodeだと思ってShift-JISに変換して何をしたいんだ?
やりたいのは
StrConv(StrConv("試験", vbFromUnicode), vbUnicode)
かな?
そりゃそうだろ…
Unicode文字列をShift-JISだと思ってUnicodeに変換して、それを更にUnicodeだと思ってShift-JISに変換して何をしたいんだ?
やりたいのは
StrConv(StrConv("試験", vbFromUnicode), vbUnicode)
かな?
941デフォルトの名無しさん (ベーイモ MM16-4W6K)
2020/08/27(木) 12:21:37.52ID:M3gK7ks0M AddDllDirectory関数の引数にパスを渡したい
この関数の引数はUnicode文字列をである必要があるから、StrConvでUnicode変換してから渡す
変換がうまく行く文字だけのパスなら、AddDllDirectory関数は成功するが、変換がうまくいかない文字が含まれるパスだと失敗する
この関数の引数はUnicode文字列をである必要があるから、StrConvでUnicode変換してから渡す
変換がうまく行く文字だけのパスなら、AddDllDirectory関数は成功するが、変換がうまくいかない文字が含まれるパスだと失敗する
942デフォルトの名無しさん (ワッチョイ 0d7c-JMbW)
2020/08/27(木) 12:24:57.51ID:W5jLLhyA0 >>941
vbUnicodeのstrconvだけじゃいかんの
vbUnicodeのstrconvだけじゃいかんの
943デフォルトの名無しさん (ベーイモ MM16-4W6K)
2020/08/27(木) 12:31:49.04ID:M3gK7ks0M >>942
それが失敗するから、vbFromUnicodeでもう戻したら案の定変になってた
それが失敗するから、vbFromUnicodeでもう戻したら案の定変になってた
944デフォルトの名無しさん (ワッチョイ ae02-1etN)
2020/08/27(木) 12:49:42.68ID:h0aAGvNz0 変換がうまくいく文字列
変換がうまくいかない文字列
それぞれ教えてよ
似たような流れ多い?
変換がうまくいかない文字列
それぞれ教えてよ
似たような流れ多い?
945デフォルトの名無しさん (ワッチョイ 822f-VQ5f)
2020/08/27(木) 13:18:08.14ID:XBcyB/ra0 なぜうまくいかないというコードを出さないのか
とりあえずEXCEL関係ないしVBA何でもスレ行けや
とりあえずEXCEL関係ないしVBA何でもスレ行けや
946デフォルトの名無しさん (ベーイモ MM16-4W6K)
2020/08/27(木) 13:21:23.95ID:M3gK7ks0M ・成功
日本、解析、実
あ~む、ア~ミ、濁音、半濁音
・失敗
試験、行、め~ん、ム~ン、ゃゅょ、ャュョ
日本、解析、実
あ~む、ア~ミ、濁音、半濁音
・失敗
試験、行、め~ん、ム~ン、ゃゅょ、ャュョ
947デフォルトの名無しさん (ワッチョイ 0d7c-JMbW)
2020/08/27(木) 13:28:24.20ID:W5jLLhyA0 strconvが失敗するって時点で、何かの勘違いがあるとしか思えない
948デフォルトの名無しさん (ワッチョイ ae02-1etN)
2020/08/27(木) 14:18:18.49ID:h0aAGvNz0949デフォルトの名無しさん (ベーイモ MM16-4W6K)
2020/08/27(木) 17:02:04.95ID:DiWyHVVAM AddDllDirectory(StrConv(パス,vbUnicode))ってコールしたときに
パスに特定文字が含まれると失敗、含まれないと成功
文字の例は>>946のとおり
明らかにStrConvの文字コード変換がおかしいと思うんだけど
ちなみに第2引数をvbFromUnicodeにすると、どんな文字列でもAddDllDirectoryは失敗する
StrConvを噛ませずに、パスを渡した場合も必ず失敗する
パスに特定文字が含まれると失敗、含まれないと成功
文字の例は>>946のとおり
明らかにStrConvの文字コード変換がおかしいと思うんだけど
ちなみに第2引数をvbFromUnicodeにすると、どんな文字列でもAddDllDirectoryは失敗する
StrConvを噛ませずに、パスを渡した場合も必ず失敗する
950ななし (ワッチョイ 822f-VQ5f)
2020/08/27(木) 18:30:06.72ID:XBcyB/ra0 AddDllDirectoryの引数をポインタでとって文字列のポインタ渡せば動く気がする
951デフォルトの名無しさん (ワッチョイ 61da-1etN)
2020/08/27(木) 19:32:16.28ID:nk+dwtaU0 >>935
やっぱわからん。
「UTF8で標準出力に個人情報含むCSV」って、既にその時点でCSVなんじゃないの?
CSVなのにカンマ区切りじゃなくてCSVとして扱えないとか?(何じゃそりゃ)
UTF8が問題ならschema.ini作って回避できない?
schema.ini使う時点で一時ファイルだわって言われたらそれまでだけど。
やっぱわからん。
「UTF8で標準出力に個人情報含むCSV」って、既にその時点でCSVなんじゃないの?
CSVなのにカンマ区切りじゃなくてCSVとして扱えないとか?(何じゃそりゃ)
UTF8が問題ならschema.ini作って回避できない?
schema.ini使う時点で一時ファイルだわって言われたらそれまでだけど。
952デフォルトの名無しさん (ドコグロ MM55-YRmH)
2020/08/27(木) 21:54:27.65ID:M2V0MDYQM953デフォルトの名無しさん (オッペケ Sr51-cLD7)
2020/08/28(金) 03:17:22.48ID:0Wmy1rK2r >>951
CSVファイルではなく、CSVの文字列になります
これをファイルに保存することなくパースしたかったのですが、方法が見つかりませんでした。
セル内カンマやセル内改行も含むCSVでしたので、自分でパースするのもちょっと大変でした。
MITライセンスのコードを見つけたのでそれを組み込んで処理しようと思います。
ありがとうございました。
CSVファイルではなく、CSVの文字列になります
これをファイルに保存することなくパースしたかったのですが、方法が見つかりませんでした。
セル内カンマやセル内改行も含むCSVでしたので、自分でパースするのもちょっと大変でした。
MITライセンスのコードを見つけたのでそれを組み込んで処理しようと思います。
ありがとうございました。
954デフォルトの名無しさん (ワッチョイ ae02-1etN)
2020/08/28(金) 09:32:14.87ID:WbcjPKym0955デフォルトの名無しさん (ワッチョイ 452c-VQ5f)
2020/08/28(金) 10:58:16.31ID:CzRmvnjE0 Ruby なら標準で、CSV モジュールが付いている。
他にも、JSON, YAML などもパースできる
プログラミングするなら、ちゃんとしたプログラミング言語を使わないと、ダメ!
汎用的な機能を、自作して使うと、バグってばかりで仕事にならない
他にも、JSON, YAML などもパースできる
プログラミングするなら、ちゃんとしたプログラミング言語を使わないと、ダメ!
汎用的な機能を、自作して使うと、バグってばかりで仕事にならない
956デフォルトの名無しさん (ワッチョイ 822f-25h5)
2020/08/28(金) 12:55:46.61ID:dgSTJFNK0 そもそもここ最強のcsvパーサEXCELのVBAすれなんだが
957デフォルトの名無しさん (テテンテンテン MM66-nUCc)
2020/08/28(金) 13:14:57.90ID:RBhGMmXKM 確かにExcelは世界一利用者の多いCSVパーサかも
958デフォルトの名無しさん (ワッチョイ 6e63-VQ5f)
2020/08/28(金) 23:36:31.47ID:KRJ+x4lY0 エクセル2010を使ってます。
ファイル名の先頭に前月の年と月を付けたいと思い
下のような式を書きました。
本日動かすと「202007」と付きます。
しかし先頭の20を削除し2007としたいです。
式をどのようになおしたら良いか自力ではわかりません。
お恥ずかしいですがご教示いただきたく。
newfilename = Format(Year(DateSerial(Year(Date), Month(Date) - 1, Day(Date))), "00") _
& Format(Month(DateSerial(Year(Date), Month(Date) - 1, Day(Date))), "00") _
& currentfilename
ファイル名の先頭に前月の年と月を付けたいと思い
下のような式を書きました。
本日動かすと「202007」と付きます。
しかし先頭の20を削除し2007としたいです。
式をどのようになおしたら良いか自力ではわかりません。
お恥ずかしいですがご教示いただきたく。
newfilename = Format(Year(DateSerial(Year(Date), Month(Date) - 1, Day(Date))), "00") _
& Format(Month(DateSerial(Year(Date), Month(Date) - 1, Day(Date))), "00") _
& currentfilename
959デフォルトの名無しさん (ワッチョイ 0d7c-JMbW)
2020/08/28(金) 23:42:18.02ID:6tfEVBvr0 >>958
ヘルプでformatの書式見た?
ヘルプでformatの書式見た?
960デフォルトの名無しさん (ワッチョイ 06c9-1etN)
2020/08/28(金) 23:47:50.15ID:X3zZxqmk0 newfilename = Format(DateSerial(Year(Now), Month(Now) - 1, 1), "yymm")
961デフォルトの名無しさん (ワッチョイ 52ee-yRqa)
2020/08/29(土) 00:17:46.05ID:58gyTBSb0962デフォルトの名無しさん (ワッチョイ 6e63-VQ5f)
2020/08/29(土) 00:20:59.98ID:M2c3GV/+0963デフォルトの名無しさん (ラクッペペ MM66-i8JQ)
2020/08/29(土) 00:54:05.51ID:OUCG9mQHM 00014500-1
のような、数字以外が入ってる文字列から
前ゼロを取りたいです。
どうすれば良いでしょうか
ゼロは先頭以外にもあるので
replaceで削除するのは無理です。
のような、数字以外が入ってる文字列から
前ゼロを取りたいです。
どうすれば良いでしょうか
ゼロは先頭以外にもあるので
replaceで削除するのは無理です。
964デフォルトの名無しさん (ワッチョイ 118e-WkEz)
2020/08/29(土) 01:26:16.94ID:uG4P+RAn0965デフォルトの名無しさん (ワッチョイ a5ce-xiBb)
2020/08/29(土) 01:42:59.60ID:haGEh7ED0 >>963
020-040 は 20-40 にすればいいの?
020-040 は 20-40 にすればいいの?
966デフォルトの名無しさん (ラクッペペ MM66-i8JQ)
2020/08/29(土) 04:49:38.60ID:OUCG9mQHM967デフォルトの名無しさん (ブーイモ MMf6-xiBb)
2020/08/29(土) 05:11:12.22ID:nRBZReLEM >>966
Sub Macro1()
Dim s1 As String
Dim s2 As String
Dim s3 As String
Dim c As String
Dim i As Integer
s1 = "001100-004400-007700" '入力
s2 = ""
s3 = ""
For i = 1 To Len(s1)
c = Mid(s1, i, 1)
If "0" <= c And c <= "9" Then
s2 = s2 & c
Else
If s2 <> "" Then
s3 = s3 & s2 * 1 & c
s2 = ""
Else
s3 = s3 & c
End If
End If
Next
If s2 <> "" Then
s3 = s3 & s2 * 1
End If
Debug.Print s3 '出力
End Sub
Sub Macro1()
Dim s1 As String
Dim s2 As String
Dim s3 As String
Dim c As String
Dim i As Integer
s1 = "001100-004400-007700" '入力
s2 = ""
s3 = ""
For i = 1 To Len(s1)
c = Mid(s1, i, 1)
If "0" <= c And c <= "9" Then
s2 = s2 & c
Else
If s2 <> "" Then
s3 = s3 & s2 * 1 & c
s2 = ""
Else
s3 = s3 & c
End If
End If
Next
If s2 <> "" Then
s3 = s3 & s2 * 1
End If
Debug.Print s3 '出力
End Sub
968デフォルトの名無しさん (ワッチョイ 45da-1etN)
2020/08/29(土) 05:37:03.41ID:IjPanbf80 入力データにピリオドが入ることはないのか?
969デフォルトの名無しさん (ワッチョイ 45da-1etN)
2020/08/29(土) 05:42:52.81ID:IjPanbf80 あ、平気か
970デフォルトの名無しさん (ワッチョイ 6101-u5JS)
2020/08/29(土) 06:40:50.33ID:VAMGDei30 そんな難しいことしなくてもこれでよくないか
Sub test()
Dim testStr As String
Dim rtnStr As String
Dim cnvNm As Long
testStr = "000070-00100-01230"
For i = 1 To Len(testStr) + 1
s = Mid(testStr, i, 1)
'数値か判定
If (IsNumeric(s)) Then
strNum = strNum + s
Else
'数値に変換
cnvNm = Val(strNum)
rtnStr = rtnStr + Trim(str(cnvNm)) + s
strNum = ""
End If
Next
End Sub
Sub test()
Dim testStr As String
Dim rtnStr As String
Dim cnvNm As Long
testStr = "000070-00100-01230"
For i = 1 To Len(testStr) + 1
s = Mid(testStr, i, 1)
'数値か判定
If (IsNumeric(s)) Then
strNum = strNum + s
Else
'数値に変換
cnvNm = Val(strNum)
rtnStr = rtnStr + Trim(str(cnvNm)) + s
strNum = ""
End If
Next
End Sub
971デフォルトの名無しさん (ワッチョイ 6101-u5JS)
2020/08/29(土) 06:44:47.53ID:VAMGDei30 区切り文字が-だけならsplitして終わる気もするけど
何が入ってるかわからんなら1文字ずつみるしかないのかな
何が入ってるかわからんなら1文字ずつみるしかないのかな
972デフォルトの名無しさん (ラクッペペ MM66-i8JQ)
2020/08/29(土) 07:17:10.36ID:OUCG9mQHM 区切りはハイフンだけです
すみません
分けて各々数字扱いすれば良かったですね
書いてみます
すみません
分けて各々数字扱いすれば良かったですね
書いてみます
973デフォルトの名無しさん (ワッチョイ 6101-u5JS)
2020/08/29(土) 08:56:00.81ID:VAMGDei30 デリミタが"-"だけならもっと簡単になるね
Sub test2()
Dim strArray() As String
Dim rtnStr As String
testStr = "000070-00100-01230"
strArray = Split(testStr, "-", , vbTextCompare)
For i = 0 To UBound(strArray)
rtnStr = rtnStr + Trim(str(Val(strArray(i))))
If(i <> UBound(strArray)) Then rtnStr = rtnStr + "-"
Next
End Sub
文字列で連結して返す必要なければsplitして数値変換でおわり
Sub test2()
Dim strArray() As String
Dim rtnStr As String
testStr = "000070-00100-01230"
strArray = Split(testStr, "-", , vbTextCompare)
For i = 0 To UBound(strArray)
rtnStr = rtnStr + Trim(str(Val(strArray(i))))
If(i <> UBound(strArray)) Then rtnStr = rtnStr + "-"
Next
End Sub
文字列で連結して返す必要なければsplitして数値変換でおわり
974デフォルトの名無しさん (ワッチョイ 4549-1etN)
2020/08/29(土) 09:09:11.49ID:dZuEnb/K0 しかし今の子はこの程度も分からないほど論理的思考がないのか、
それともこのスレの住民を試そうとしているのか
それともこのスレの住民を試そうとしているのか
975デフォルトの名無しさん (ワッチョイ 2992-Lsvc)
2020/08/29(土) 09:45:04.26ID:SoqUgBeq0 使う関数提示するくらいで解決できなきゃ放置でいいんじゃね?
976デフォルトの名無しさん (ワッチョイ 45cc-pyQU)
2020/08/29(土) 10:00:53.07ID:pUlaC/XX0 For r = 1 To 12000
処理
PDF出力
という処理をしているのですが、これだとPDFが12000ファイルになって、全て出力した後で結合するのですが
これを12000枚程度をPDF1ファイルで出力する方法をおしえてください
処理
PDF出力
という処理をしているのですが、これだとPDFが12000ファイルになって、全て出力した後で結合するのですが
これを12000枚程度をPDF1ファイルで出力する方法をおしえてください
977デフォルトの名無しさん (ブーイモ MMf6-xiBb)
2020/08/29(土) 10:07:03.64ID:m9X9gCs/M Sub test2()
Dim strArray() As String
Dim testStr As String
Dim rtnStr As String
testStr = "000070-00100-01230"
strArray = Split(testStr, "-")
For i = 0 To UBound(strArray)
strArray(i) = strArray(i) * 1
Next
rtnStr = Join(strArray, "-")
Debug.Print rtnStr
End Sub
Dim strArray() As String
Dim testStr As String
Dim rtnStr As String
testStr = "000070-00100-01230"
strArray = Split(testStr, "-")
For i = 0 To UBound(strArray)
strArray(i) = strArray(i) * 1
Next
rtnStr = Join(strArray, "-")
Debug.Print rtnStr
End Sub
978デフォルトの名無しさん (ワッチョイ 61da-1etN)
2020/08/29(土) 10:19:55.18ID:wR6MYEok0979デフォルトの名無しさん (ワッチョイ 4549-1etN)
2020/08/29(土) 10:47:19.93ID:dZuEnb/K0 12000ページのPDF・・・
ほんとに聞きたい事なの?これ
ほんとに聞きたい事なの?これ
980デフォルトの名無しさん (ワッチョイ 0201-YRmH)
2020/08/29(土) 10:47:46.31ID:lHm5nrxO0 >>973
Split使うならJoinも使おうよ…
Sub test2()
Dim strArray() As String
Dim rtnStr As String
testStr = "000070-00100-01230"
strArray = Split(testStr, "-", , vbTextCompare)
For i = 0 To UBound(strArray)
strArray(i) = Cstr(Val(strArray(i)))
Next
rtnStr = Join(strArray, "-")
End Sub
Split使うならJoinも使おうよ…
Sub test2()
Dim strArray() As String
Dim rtnStr As String
testStr = "000070-00100-01230"
strArray = Split(testStr, "-", , vbTextCompare)
For i = 0 To UBound(strArray)
strArray(i) = Cstr(Val(strArray(i)))
Next
rtnStr = Join(strArray, "-")
End Sub
981980 (ワッチョイ 0201-YRmH)
2020/08/29(土) 10:48:58.87ID:lHm5nrxO0 ってすでに書かれてたわ… Orz
982デフォルトの名無しさん (ブーイモ MM4d-xiBb)
2020/08/29(土) 10:55:28.99ID:jdj2nRjtM983デフォルトの名無しさん (ワッチョイ 21d2-vZRt)
2020/08/29(土) 11:18:02.61ID:ebvcDddx0 ある言語だと
"00-001-02"split("-")map(asNumber)join("-")println
"00-001-02"split("-")map(asNumber)join("-")println
984デフォルトの名無しさん (アウアウウー Sa85-7m6G)
2020/08/29(土) 11:19:35.12ID:0Ji7S1+0a985976 (ワッチョイ 45cc-pyQU)
2020/08/29(土) 13:57:00.39ID:pUlaC/XX0 >>978
1シートにはまとめられません。
>>979
日々の取引をデータベースに入力していて、そのデータベースから出力されたデータを取引伝票としてPDF化したいのですが
データベースソフトに取引伝票の書式が設定されていないので、エクセルで作ろうと思います。
1ページごと出力してフリーソフトで結合すると、12時間くらいかかっていたので、エクセルのPDF結合だとAcrobatPro
が必要になるそうなので、この方法もできません。
>>984
シート上に帳票を作り、その帳票をページごとに書き換えています。試していませんが、1シートだと行数が足りないです。
それと、ページごとに罫線とかの書式を作るのはつらいです。
1シートにはまとめられません。
>>979
日々の取引をデータベースに入力していて、そのデータベースから出力されたデータを取引伝票としてPDF化したいのですが
データベースソフトに取引伝票の書式が設定されていないので、エクセルで作ろうと思います。
1ページごと出力してフリーソフトで結合すると、12時間くらいかかっていたので、エクセルのPDF結合だとAcrobatPro
が必要になるそうなので、この方法もできません。
>>984
シート上に帳票を作り、その帳票をページごとに書き換えています。試していませんが、1シートだと行数が足りないです。
それと、ページごとに罫線とかの書式を作るのはつらいです。
986デフォルトの名無しさん (ワッチョイ 4549-1etN)
2020/08/29(土) 14:17:55.39ID:dZuEnb/K0987デフォルトの名無しさん (ワッチョイ 11b3-u9FC)
2020/08/29(土) 14:32:50.04ID:D+h94FkM0 >>985
よくわからないけど、何とかデータをエクセルの表にして、ワードの差し込み印刷でやる、とかはどう?
よくわからないけど、何とかデータをエクセルの表にして、ワードの差し込み印刷でやる、とかはどう?
988デフォルトの名無しさん (アウアウエー Sa0a-Rexm)
2020/08/29(土) 14:38:51.56ID:fy0wFynXa PDF1ファイルにする理由はあるの?
120ファイルぐらいに分けるでしょ普通
120ファイルぐらいに分けるでしょ普通
989デフォルトの名無しさん (ワッチョイ 822f-8BP0)
2020/08/29(土) 14:42:09.88ID:1Tm3n33G0 伝票とかだと保存義務とかあったりして、出力しておいておかないとダメな時もある
1シートで収まらないならある程度で分割してやるしかないし
罫線とか決まったフォーマットならコピーするだけ
が、EXCELでやるのが間違ってるな
ちゃんとした帳票ツール買って対応する言語使えよ
1シートで収まらないならある程度で分割してやるしかないし
罫線とか決まったフォーマットならコピーするだけ
が、EXCELでやるのが間違ってるな
ちゃんとした帳票ツール買って対応する言語使えよ
990デフォルトの名無しさん (ワッチョイ 4d63-gth/)
2020/08/29(土) 16:14:59.78ID:EjHgD7140 PDF化って言われても実コマンド書かなきゃアドバイスのしようもないわな
991デフォルトの名無しさん (ワッチョイ 0d7c-JMbW)
2020/08/29(土) 19:10:04.48ID:91aO+zvA0 シートにまとめられない理由は?
まとめないとして、12000シート作れるスペックはあるのか?
まとめないとして、12000シート作れるスペックはあるのか?
992デフォルトの名無しさん (ワッチョイ 06c9-1etN)
2020/08/29(土) 22:40:12.57ID:LkUYL8wZ0 >>961
これ、マジで困るわ・・・
これ、マジで困るわ・・・
993デフォルトの名無しさん (ワッチョイ 6e63-mUq2)
2020/08/29(土) 23:53:21.40ID:wkbqrDC+0 サポート終了なんだからいつまでもIE使ってんじゃねえよ
994デフォルトの名無しさん (テテンテンテン MM66-nUCc)
2020/08/30(日) 00:09:48.26ID:HNjVBgM5M >>985
Accessでやって下さい
Accessでやって下さい
995デフォルトの名無しさん (ワッチョイ 6e63-8BP0)
2020/08/30(日) 07:04:48.97ID:ZpZWI99c0 IE制御で作る
てどういう意味です?
てどういう意味です?
996デフォルトの名無しさん (アウアウエー Sa0a-ifKp)
2020/08/30(日) 08:58:33.06ID:IZ41nY3ca テキストファイルを読み込もうとしているのですが、ファイルがないとエラーが出ます。なにが原因でしょうか?
Sub func()
Dim folderPath As String: folderPath = "G:\Test"
Dim textLine, fileName As String
Dim fileToOpen As Integer
Dim i As Integer
fileName = folderPath & "01.txt"
fileToOpen = FreeFile()
Open fileName For Input As fileToOpen
i = 1
While Not EOF(fileToOpen)
Line Input #fileToOpen, textLine
Cells(i, "A").Value = textLine
i = i + 1
Wend
End Sub
Sub func()
Dim folderPath As String: folderPath = "G:\Test"
Dim textLine, fileName As String
Dim fileToOpen As Integer
Dim i As Integer
fileName = folderPath & "01.txt"
fileToOpen = FreeFile()
Open fileName For Input As fileToOpen
i = 1
While Not EOF(fileToOpen)
Line Input #fileToOpen, textLine
Cells(i, "A").Value = textLine
i = i + 1
Wend
End Sub
997デフォルトの名無しさん (ワッチョイ 6101-cCp/)
2020/08/30(日) 09:03:16.96ID:YG+IT5u+0 Open "C:\Sample\Data.txt" For Input As #1
Line Input #1, buf
Close #1
Line Input #1, buf
Close #1
998デフォルトの名無しさん (ワッチョイ a2bc-n2Os)
2020/08/30(日) 09:03:41.78ID:yRrMkFD60 フォルダーパスの最後に/足してみては?
999デフォルトの名無しさん (ワッチョイ 6101-cCp/)
2020/08/30(日) 09:05:06.49ID:YG+IT5u+0 フォルダとファイルの間に/がないとか
1000デフォルトの名無しさん (アウアウエー Sa0a-ifKp)
2020/08/30(日) 09:13:38.94ID:IZ41nY3ca フォルダパスに"\"が入っていませんでした。
ありがとうございます!
ありがとうございます!
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 65日 7時間 12分 10秒
新しいスレッドを立ててください。
life time: 65日 7時間 12分 10秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 備蓄米の輸送費を国が負担と小泉農相 ★2 [おっさん友の会★]
- 「おにぎりすら食べられない」相次ぐ郵便局員の突然死 [おっさん友の会★]
- 芸能】中居正広氏の代理人が音声データを再要求「開示できるはず」 第三委の“ゼロ回答”受け ★4 [jinjin★]
- 「美人だね」「スタイルいいね」「ちゃん付」は全てアウト? 意外と知らないセクハラの境界線 [少考さん★]
- 【関東】「性善説に訴えるのは限界」JRバスの警告も完全無視…「相席ブロック」問題を呼びかけも効果はナシ ★2 [少考さん★]
- 妊娠発表41歳女性芸人、優先席マナー記したブログに賛否「座ってる健康な人、全員スマホに夢中で」「優先されて当然!という気持ちで…」 [jinjin★]
- 中国人🇨🇳ネトウヨが小日本を河北省と認識し旅行ブーム!なんだ、俺ら中国人だったんだ… [776365898]
- 【実況】博衣こよりのえちえち鬼武者3🧪
- 小泉新総理「自民党をぶっこわす!農協民営化!農協解散!抵抗勢力は公認しない!」 これで総選挙圧勝できるよな [452836546]
- 【悲報】日産逝く、栃木工場も売却か……マジでジャップの終わりの始まり…日本が落ちぶれていくの見るのがつれぇわw [904880432]
- 【大阪】雷に打たれた男の子、両目失明、言語障害、車椅子生活 [485187932]
- 押すとイケメンになるが幼女を見かけると腰をカクカク振ってしまうようになるボタン