!extend:checked:vvvvv:1000:512
↑同じ内容を2行貼り付けるナリ
ExcelのVBAに関する質問スレナリ
コード書き込みや作成依頼もOKナリ
※前スレ
Excel VBA 質問スレ Part69
https://mevius.5ch.net/test/read.cgi/tech/1607786543/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
Excel VBA 質問スレ Part70
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん (ワッチョイ b6da-6NWR)
2021/03/18(木) 22:08:43.71ID:jtngtgXU02デフォルトの名無しさん (ワッチョイ 013d-drwQ)
2021/03/18(木) 22:33:41.83ID:e6JgDwDC0 教えて下さい。
あるシートに買物記録があり、日付や購入店、商品名や単価の他に、商品の分類という列があります。
その列には「文具」「食品」「書籍」等が入力されています。
VBAで以下の動作をさせたいです。
↓
別シートにあるダウンリストに、選択肢として、この商品分類に入力されている値を設定する。
重複して入力されている値は無視。入力されているすべての「分類」をひとつずつ選択肢にする。
↑
これをどう書けばいいのか、教えて下さい。
よろしくお願いいたします。
あるシートに買物記録があり、日付や購入店、商品名や単価の他に、商品の分類という列があります。
その列には「文具」「食品」「書籍」等が入力されています。
VBAで以下の動作をさせたいです。
↓
別シートにあるダウンリストに、選択肢として、この商品分類に入力されている値を設定する。
重複して入力されている値は無視。入力されているすべての「分類」をひとつずつ選択肢にする。
↑
これをどう書けばいいのか、教えて下さい。
よろしくお願いいたします。
3デフォルトの名無しさん (ワッチョイ 13ad-7MQm)
2021/03/19(金) 02:09:13.85ID:pQtJO8X70 関数でも分類列をMATCHで検索してRow()と不一致なら空白として、それを入力規則にすれば出来そう
VBAでやるなら連想配列使って重複弾いて、かな
VBAでやるなら連想配列使って重複弾いて、かな
4デフォルトの名無しさん (アウアウウー Sa5d-dI/L)
2021/03/19(金) 12:08:42.44ID:Efxeclnea >>2
もう少し個別にどの部分で詰まっているか書いた方がいいんじゃね
もう少し個別にどの部分で詰まっているか書いた方がいいんじゃね
5デフォルトの名無しさん (ワッチョイ 4901-gJ6t)
2021/03/19(金) 12:19:16.87ID:Rf8ZEH4N0 >>2
ワークシート関数でいいなら
適当なセルに
=UNIQUE(商品の分類が入力された列)
と入力すると重複整理された配列が入力される
プルダウンリストを作りたいセルを選択して「データの入力規則」を選択、
規則をリスト、ソースをさっき作った配列がある列にする
ワークシート関数でいいなら
適当なセルに
=UNIQUE(商品の分類が入力された列)
と入力すると重複整理された配列が入力される
プルダウンリストを作りたいセルを選択して「データの入力規則」を選択、
規則をリスト、ソースをさっき作った配列がある列にする
6デフォルトの名無しさん (アウアウウー Sa5d-/HWa)
2021/03/19(金) 13:13:27.10ID:LUl3FuSJa ピボットグラフのRefresh処理が重くて困ってます
汎用的な処理中に停止すべき項目(画面描画、自動計算、イベント、アラート等)は停止させています
元テーブルの行は100程度です
処理を軽くする方法があればご教示願います
汎用的な処理中に停止すべき項目(画面描画、自動計算、イベント、アラート等)は停止させています
元テーブルの行は100程度です
処理を軽くする方法があればご教示願います
7デフォルトの名無しさん (ワッチョイ 0bda-4Ddi)
2021/03/19(金) 20:19:38.16ID:TXt81ZmU0 >>6
ピボットテーブルの設定で「更新時に列幅を自動調整する」のチェックを外す
ピボットテーブルの設定で「更新時に列幅を自動調整する」のチェックを外す
8デフォルトの名無しさん (ワッチョイ 4901-gJ6t)
2021/03/19(金) 20:23:00.26ID:Rf8ZEH4N0 ググるとそれ出て来るけど、あんまり意味ないよ
って言いつつ効果あったら恥ずかしいけど
って言いつつ効果あったら恥ずかしいけど
9デフォルトの名無しさん (ワッチョイ 0bda-4Ddi)
2021/03/19(金) 22:16:15.80ID:TXt81ZmU0 初心者にはそのくらいしか教えられん
10デフォルトの名無しさん (アウアウウー Sa5d-/HWa)
2021/03/19(金) 22:28:12.63ID:ZGQ0wMm+a11デフォルトの名無しさん (ワッチョイ 4901-gJ6t)
2021/03/19(金) 23:06:18.73ID:Rf8ZEH4N0 というか元々のグラフ生成が重いのかマクロが重いのか分からん
普通に更新ボタン押しても重いの?
普通に更新ボタン押しても重いの?
12デフォルトの名無しさん (アウアウウー Sa5d-/HWa)
2021/03/19(金) 23:55:25.74ID:tSoX9T0pa13デフォルトの名無しさん (ワッチョイ 4901-gJ6t)
2021/03/20(土) 00:13:52.57ID:1HieLmil0 グラフ更新よりも関数で固まってる可能性の方が高いから、
一度全部の関数を削除してみて解決するか確認した方がいいと思う
自動計算切っててもピボット更新時に再計算されてる筈だし
一度全部の関数を削除してみて解決するか確認した方がいいと思う
自動計算切っててもピボット更新時に再計算されてる筈だし
14デフォルトの名無しさん (アウアウウー Sa5d-/HWa)
2021/03/20(土) 01:01:30.93ID:7VltWvHha >>13
ありがとうございます
ワークシート関数は使わず、計算は全部vbaでやっています
関数と言えるのはピボットグラフのグラフ部分だけです
ピボットグラフのグラフ部分の関数が重くなっている可能性が考えられるかも、と思いました
ありがとうございます
ありがとうございます
ワークシート関数は使わず、計算は全部vbaでやっています
関数と言えるのはピボットグラフのグラフ部分だけです
ピボットグラフのグラフ部分の関数が重くなっている可能性が考えられるかも、と思いました
ありがとうございます
15デフォルトの名無しさん (ワッチョイ 09da-dI/L)
2021/03/20(土) 04:43:36.06ID:kQoUW+sA0 すげえなワークシート関数一切使わんでマクロだけでやるとは
16デフォルトの名無しさん (ワッチョイ 0bda-4Ddi)
2021/03/20(土) 06:51:00.93ID:EyTYq69F0 遅いとか速いとか漠然としているので何秒かかっているかもわからんし
データ量やステップが増えればある程度遅くなるのは当然じゃね
データ量やステップが増えればある程度遅くなるのは当然じゃね
17デフォルトの名無しさん (ワッチョイ b15f-1iFT)
2021/03/20(土) 07:28:18.81ID:/meO8w1y0 2〜3秒でも遅いと思う人もいるしね
18デフォルトの名無しさん (ワッチョイ 7b35-cZ1W)
2021/03/20(土) 10:08:34.03ID:D1FjuE5r0 VBA使ってんならどの部分でどんだけ時間かかってるか測定すりゃいいだけの話なのになぜしないんだろう
19デフォルトの名無しさん (アウアウウー Sa5d-/HWa)
2021/03/20(土) 11:15:44.57ID:Awf5aTeqa20デフォルトの名無しさん (ワッチョイ 0bda-4Ddi)
2021/03/20(土) 20:35:40.01ID:EyTYq69F0 PCの性能が低いんじゃね
21デフォルトの名無しさん (ワッチョイ 09da-dI/L)
2021/03/20(土) 20:48:09.36ID:kQoUW+sA0 それだ!
パソコンのせい
ゲーミング用買えば全てにおいてスマホ級の速さだ!
パソコンのせい
ゲーミング用買えば全てにおいてスマホ級の速さだ!
2021/03/21(日) 16:59:06.62
5chのスレで1000まで書き込まれたスレを1から1000までコピペしてsheet1に貼り付け
sheet1を特定のキーワードで検索して、書き込まれたレスと返信があったレスを抽出してsheet2に貼り付けしたいです
返信がない場合は空白と入力したいです
アイデアが思い付きません、宜しくお願いします
sheet1を特定のキーワードで検索して、書き込まれたレスと返信があったレスを抽出してsheet2に貼り付けしたいです
返信がない場合は空白と入力したいです
アイデアが思い付きません、宜しくお願いします
23デフォルトの名無しさん (ワッチョイ b15f-1iFT)
2021/03/21(日) 17:54:39.86ID:fT/r6tJT0 いつもの
24デフォルトの名無しさん (ワッチョイ d17c-0ZVt)
2021/03/21(日) 21:09:20.26ID:aZS3hsKq0 >>6
イベントやアラートって目的も無く停止しない方がいいと思うが
イベントやアラートって目的も無く停止しない方がいいと思うが
25デフォルトの名無しさん (ラクッペペ MMeb-GXsX)
2021/03/22(月) 05:59:51.89ID:B7/s/yNjM >>22
5chアフィ乙
5chアフィ乙
26デフォルトの名無しさん (アウアウウー Sa5d-TxCv)
2021/03/23(火) 06:37:42.10ID:3hKAtAlua エクセルからhtmlで保存するとき
グラフが1000以上でもできますか
グラフが1000以上でもできますか
27デフォルトの名無しさん (ワッチョイ 0bda-4Ddi)
2021/03/23(火) 10:17:41.75ID:lizcePOK0 自分で作らずに質問してくる意味が解らない
28デフォルトの名無しさん (ワッチョイ 298e-GJb0)
2021/03/23(火) 14:45:46.64ID:KXdqd9JD0 ゆとりだから
29デフォルトの名無しさん (ワッチョイ 5190-U6ZO)
2021/03/23(火) 15:16:16.58ID:J1vTYXys0 選択した範囲をグラフにするマクロを作りたいです
マクロ記録でグラフ化するまでを記録し、それを改造してやっているのですが
' Macro1 Macro
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlRadar
ActiveChart.SetSourceData Source:=Range(左上:右下)
End Sub
「選択してる範囲を取得」してその範囲を代入する方法がよくわかりません
ActiveChart.SetSourceData Source:=Range(左上:右下)
のRangeの左上、右下部分にSelection(1)やSelection(Selection.Count)を入れようとしてるのですがエラーになります
マクロ記録でグラフ化するまでを記録し、それを改造してやっているのですが
' Macro1 Macro
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlRadar
ActiveChart.SetSourceData Source:=Range(左上:右下)
End Sub
「選択してる範囲を取得」してその範囲を代入する方法がよくわかりません
ActiveChart.SetSourceData Source:=Range(左上:右下)
のRangeの左上、右下部分にSelection(1)やSelection(Selection.Count)を入れようとしてるのですがエラーになります
30デフォルトの名無しさん (JP 0H63-THbH)
2021/03/23(火) 17:44:03.01ID:XH4udpo7H selectionだけでいいんじゃね
31デフォルトの名無しさん (ワッチョイ 13ad-7MQm)
2021/03/23(火) 17:59:59.95ID:dulEqDGL0 チャートをセレクトしてるからセルのセレクトが外れてるんだよ
Addchartの時にセレクトじゃなくてオブジェクト変数にセットして
アクティブチャートの行を【変数名】.(以下略)にしてやってみ
変数にセットするときに文頭のSetを忘れないようにな
Addchartの時にセレクトじゃなくてオブジェクト変数にセットして
アクティブチャートの行を【変数名】.(以下略)にしてやってみ
変数にセットするときに文頭のSetを忘れないようにな
32デフォルトの名無しさん (ワッチョイ 71fd-ED79)
2021/03/24(水) 18:47:39.00ID:7fnGaRlR0 エラー処理で On Error GoTo を On Err GoTo と書いていて
全く気付かずエラーになって初めて、ラベルに飛ばないので気づきました。
デバッグでは判定しないようですが、これらを事前にチェックで見つけることは
出来ないのですかね?
全く気付かずエラーになって初めて、ラベルに飛ばないので気づきました。
デバッグでは判定しないようですが、これらを事前にチェックで見つけることは
出来ないのですかね?
33デフォルトの名無しさん (テテンテンテン MMeb-g1di)
2021/03/24(水) 19:49:11.93ID:SmPCs0wuM ヤフーファイナンスの仕様が変わった?のか、
当該銘柄のページから
Set FR = rngResult.Find(What:="出来高*", LookAt:=xlWhole)
みたいな感じで出来高取得してたのが
できなくなった
どこを直せばいいのかわからん
もしかしてこのやり方では
取得できなくなった?
当該銘柄のページから
Set FR = rngResult.Find(What:="出来高*", LookAt:=xlWhole)
みたいな感じで出来高取得してたのが
できなくなった
どこを直せばいいのかわからん
もしかしてこのやり方では
取得できなくなった?
34デフォルトの名無しさん (ドコグロ MM63-xhhb)
2021/03/24(水) 19:50:41.85ID:jjB0JAKeM >>32
まともなコードならGoto文なんてたいしてないはずだからGoto検索して目視確認で良いんじゃね?
まともなコードならGoto文なんてたいしてないはずだからGoto検索して目視確認で良いんじゃね?
3529 (ワッチョイ 9990-oXDN)
2021/03/24(水) 20:04:27.24ID:lll8bKoA0 うまくいきました、ありがとうございました
もう一つ質問させてください
以下は↓の画像のようにデータを範囲選択し実行した場合、3項目ごとに3つのグラフを表示するマクロです
@https://i.imgur.com/qb9quh1.jpg
Sub Macro1()
' Macro1 Macro
Set CTop = Selection(1)
Set CLast = Selection(Selection.Count)
Dim i As Integer
For i = 0 To 2
y = i * 3
With ActiveSheet.Shapes.AddChart.Chart
.ChartType = xlRadar
.SetSourceData Source:=Range(CTop.Offset(0, y), CLast.Offset(0, y))
End With
Next i
End Sub
ただ、データに問題があり、「行9」以降の部分を抜き出してグラフを作りたいんです
そこで↓のように範囲選択をして実行したのですが、系列名が出ないのでどのデータかわかりにくいんですよね
Ahttps://i.imgur.com/u2vrDOl.jpg
実際のデータは膨大なため、いちいち「行○○〜行○○まで」と数値で指定するのは難しいです
できればA画像のように手動で範囲選択した場合、@のようにa,b,cと系列名が出るのが理想です
.SetSourceData Source:=Range(○○) の部分をうまく変更すればいいのか、それとも
.SeriesCollection(1).Name = ○○ とあとで系列名を変えるのが良いのでしょうか?
もう一つ質問させてください
以下は↓の画像のようにデータを範囲選択し実行した場合、3項目ごとに3つのグラフを表示するマクロです
@https://i.imgur.com/qb9quh1.jpg
Sub Macro1()
' Macro1 Macro
Set CTop = Selection(1)
Set CLast = Selection(Selection.Count)
Dim i As Integer
For i = 0 To 2
y = i * 3
With ActiveSheet.Shapes.AddChart.Chart
.ChartType = xlRadar
.SetSourceData Source:=Range(CTop.Offset(0, y), CLast.Offset(0, y))
End With
Next i
End Sub
ただ、データに問題があり、「行9」以降の部分を抜き出してグラフを作りたいんです
そこで↓のように範囲選択をして実行したのですが、系列名が出ないのでどのデータかわかりにくいんですよね
Ahttps://i.imgur.com/u2vrDOl.jpg
実際のデータは膨大なため、いちいち「行○○〜行○○まで」と数値で指定するのは難しいです
できればA画像のように手動で範囲選択した場合、@のようにa,b,cと系列名が出るのが理想です
.SetSourceData Source:=Range(○○) の部分をうまく変更すればいいのか、それとも
.SeriesCollection(1).Name = ○○ とあとで系列名を変えるのが良いのでしょうか?
36デフォルトの名無しさん (ワッチョイ 13ad-7MQm)
2021/03/24(水) 20:32:05.20ID:HXzqnMHf0 個人的には系列名変える方が好き
>>32
インタプリタは事前に文法チェックをしないのが普通ですから、そういうのはインタプリタには無理でしょう‥‥
インタプリタは事前に文法チェックをしないのが普通ですから、そういうのはインタプリタには無理でしょう‥‥
38デフォルトの名無しさん (ワッチョイ b92f-6umI)
2021/03/24(水) 22:00:53.02ID:T3engiTo0 いまどき純粋なインタプリタなんてそうそうないけどな
一応VBAは事前にコンパイルチェックできるが、>>32は
On 変数 GoTo xxっていう文法があってそれにそっているからエラーにならない
そして変数宣言を強制しても、Errって組み込みオブジェクトが宣言なしで使えるという罠
なんかコード分析するようなツールでもあれば検出できるかもしれんが、まあ標準の範囲じゃ無理だな
一応VBAは事前にコンパイルチェックできるが、>>32は
On 変数 GoTo xxっていう文法があってそれにそっているからエラーにならない
そして変数宣言を強制しても、Errって組み込みオブジェクトが宣言なしで使えるという罠
なんかコード分析するようなツールでもあれば検出できるかもしれんが、まあ標準の範囲じゃ無理だな
39デフォルトの名無しさん (ワッチョイ 0bda-4Ddi)
2021/03/24(水) 22:54:43.12ID:/MIQ1K/L0 >>35
元データと選択された表示用データを別にすればいいんじゃね
元データと選択された表示用データを別にすればいいんじゃね
40デフォルトの名無しさん (ワッチョイ 1363-ED79)
2021/03/25(木) 01:08:37.06ID:QAr0K9ya0 いきなりアホになってコード組むのが劇遅くなりました。
きれいなコードを書こうと思ったんです。
きれいなコードを書こうと思ったんです。
41デフォルトの名無しさん (アウアウウー Sa5d-dI/L)
2021/03/25(木) 04:40:02.78ID:d+5Eu7Qca 思っただけにしとけ
4232 (ワッチョイ 71fd-ED79)
2021/03/25(木) 10:21:24.54ID:Btw5OylJ0 ありがとうございました。
自分で注意深くやるしかないんですね
実行中のfunction(やsub)名を取得することは可能でしょうか?
やりたいことはエラー処理時にその名称を表示したいのですが
べた書きするしかないですかね
Public Function test() As String
On Error testErr
testErrr:
MsgBox "testErr" & vbCrLf & "エラー番号:" & Err.Number & vbCrLf & "エラー内容:" & Err.Description, vbExclamation
End Function
自分で注意深くやるしかないんですね
実行中のfunction(やsub)名を取得することは可能でしょうか?
やりたいことはエラー処理時にその名称を表示したいのですが
べた書きするしかないですかね
Public Function test() As String
On Error testErr
testErrr:
MsgBox "testErr" & vbCrLf & "エラー番号:" & Err.Number & vbCrLf & "エラー内容:" & Err.Description, vbExclamation
End Function
43デフォルトの名無しさん (ワッチョイ 0bda-4Ddi)
2021/03/25(木) 10:44:00.77ID:kL+lpreE0 あくまで個人的だが
MsgBox "○○で異常が発生しました." & vbCrLf & "Err:" & Err.Number & " " & Err.Description, vbExclamation, "Function test"
MsgBox "○○で異常が発生しました." & vbCrLf & "Err:" & Err.Number & " " & Err.Description, vbExclamation, "Function test"
44デフォルトの名無しさん (ブーイモ MM4d-7MQm)
2021/03/25(木) 12:19:36.16ID:v0lS7PpFM 個人的には、だけど最終的にはエラー停止が発生せずイレギュラーの場合は自らメッセージを出して処理を終了するってするのが望ましいんじゃないかなぁ
動作確認で何実行してるか知りたいだけなら各プロシージャの頭にDebug.Printでプロシージャ名吐き出しておけばどこで止まったかが分かりやすい
まぁDebug.Printって軽くはないから少し大きめのプログラムだと動作確認中は時間かかる感じになっちゃうだろうけど
動作確認で何実行してるか知りたいだけなら各プロシージャの頭にDebug.Printでプロシージャ名吐き出しておけばどこで止まったかが分かりやすい
まぁDebug.Printって軽くはないから少し大きめのプログラムだと動作確認中は時間かかる感じになっちゃうだろうけど
45デフォルトの名無しさん (ワッチョイ 0bda-4Ddi)
2021/03/25(木) 13:26:17.29ID:kL+lpreE0 確かにそうだ、異常が出ないで済むように入力データのチェックとか
ファイルの有無とかを先に確認すればエラーなんか滅多に起きないからな
ファイルの有無とかを先に確認すればエラーなんか滅多に起きないからな
46デフォルトの名無しさん (ワッチョイ 71fd-ED79)
2021/03/25(木) 13:41:18.71ID:Btw5OylJ0 >>45
勿論そういうチェックは入れていますよ
勿論そういうチェックは入れていますよ
47デフォルトの名無しさん (JP 0H4d-4Ddi)
2021/03/25(木) 14:16:03.41ID:NGSCZFfJH ちゃんとチェックしてればOn Errorの出番なんか滅多にないはずだけど
複数の関数でエラーが出るなんて、あきらかに設計がおかしい
複数の関数でエラーが出るなんて、あきらかに設計がおかしい
48デフォルトの名無しさん (ワッチョイ 134f-uqQH)
2021/03/25(木) 20:31:33.14ID:hvCMihey0 >>42
そうだね。VBAと言うかVB6系のは基本ベタ書きするしかない。
例外としてクラシックASPでVBS走らせたときはエラー行を表示させることが出来る。
VB.Netになるとその辺の情報は細やかに取得出来る。
VBAはベースが古い言語だから仕方がない。
そうだね。VBAと言うかVB6系のは基本ベタ書きするしかない。
例外としてクラシックASPでVBS走らせたときはエラー行を表示させることが出来る。
VB.Netになるとその辺の情報は細やかに取得出来る。
VBAはベースが古い言語だから仕方がない。
49デフォルトの名無しさん (ワッチョイ 134f-uqQH)
2021/03/25(木) 20:56:22.97ID:hvCMihey0 >>47
別に設計がおかしいと言うことはないよ。
これはVBAに限らず論理エラーで把握しきれないものは実行時エラーとして捕まえる仕組みは当然のように設定する場合がある。
例えばDBに繋ぎに行って繋がったけどその後で何らかしらの外部的要因で切断された場合など、
実行時エラーが発生するのでその場合は何度か再接続を試みてダメだったら初めてエラーとしてポップアップするとか。
その場合、当然データ復旧させるためにもどこでどんなことやろうとして落ちたのかの情報は重要になってくることが多い。
その他にも概ね実行時エラーは予期せず落ちるものの方が多いので
むしろ状況を把握するためにも細かい情報が必要になることの方が多いよ。
別に設計がおかしいと言うことはないよ。
これはVBAに限らず論理エラーで把握しきれないものは実行時エラーとして捕まえる仕組みは当然のように設定する場合がある。
例えばDBに繋ぎに行って繋がったけどその後で何らかしらの外部的要因で切断された場合など、
実行時エラーが発生するのでその場合は何度か再接続を試みてダメだったら初めてエラーとしてポップアップするとか。
その場合、当然データ復旧させるためにもどこでどんなことやろうとして落ちたのかの情報は重要になってくることが多い。
その他にも概ね実行時エラーは予期せず落ちるものの方が多いので
むしろ状況を把握するためにも細かい情報が必要になることの方が多いよ。
50デフォルトの名無しさん (JP 0H4d-4Ddi)
2021/03/25(木) 21:30:34.23ID:NGSCZFfJH それってVBAでやるようなことか?
例外処理が必要とわかってるなら.netで書いてTry Catchを使うべきだと思うが
例外処理が必要とわかってるなら.netで書いてTry Catchを使うべきだと思うが
51デフォルトの名無しさん (ワッチョイ 134f-uqQH)
2021/03/25(木) 22:07:43.24ID:hvCMihey0 >>50
.Netの環境が選択出来る状況ならそれでもいいんじゃないの?
.NetならException継承して好きにエラー設定すればいい。
けどここはあくまでEXCEL VBAのスレだからその話は置いておくよ。
後、VBAでやることかどうかと言うのはあくまで俺はだけど正直あまり選択基準にないな。
第一に要件を満たしているか、次に操作や保守がし易いかかな。まぁ、納期も重要な要素にはなるけど。
だからもし後で保守するのが楽になるなら
場合によってはエラーメッセージ出しておしまいにすることもあるだろうけど
場合によってはエラーハンドリング用のクラス作ったり、
論理エラーもRaiseして実行時エラーのように処理して一元管理したり、
後始末処理をコールバックで移譲して処理したりすることも視野に入れるよ。
.Netの環境が選択出来る状況ならそれでもいいんじゃないの?
.NetならException継承して好きにエラー設定すればいい。
けどここはあくまでEXCEL VBAのスレだからその話は置いておくよ。
後、VBAでやることかどうかと言うのはあくまで俺はだけど正直あまり選択基準にないな。
第一に要件を満たしているか、次に操作や保守がし易いかかな。まぁ、納期も重要な要素にはなるけど。
だからもし後で保守するのが楽になるなら
場合によってはエラーメッセージ出しておしまいにすることもあるだろうけど
場合によってはエラーハンドリング用のクラス作ったり、
論理エラーもRaiseして実行時エラーのように処理して一元管理したり、
後始末処理をコールバックで移譲して処理したりすることも視野に入れるよ。
52デフォルトの名無しさん (ワッチョイ b609-6iI7)
2021/03/26(金) 01:12:09.52ID:ZoYVceoP0 Date型はミリ秒を持てないのでしょうか?
エクセルシートでミリ秒まで表示できている時刻があって、そのシリアル値をVBAのDate型変数に代入するとミリ秒以下が丸められてしまいます
エクセルシートでミリ秒まで表示できている時刻があって、そのシリアル値をVBAのDate型変数に代入するとミリ秒以下が丸められてしまいます
53デフォルトの名無しさん (ワッチョイ 655f-luGl)
2021/03/26(金) 01:52:58.20ID:YMBMwB0G0 >>52
時分秒までです。
時分秒までです。
54デフォルトの名無しさん (ワッチョイ 655f-luGl)
2021/03/26(金) 01:56:39.74ID:YMBMwB0G0 >>52
Date型に入れて何がしたかったのか?
Date型に入れて何がしたかったのか?
55デフォルトの名無しさん (ワッチョイ 12ad-krmx)
2021/03/26(金) 02:03:12.37ID:NYhr3fTi0 日付を扱うならDate型使うけど
時間を扱うならDouble型使うなぁ
時間を扱うならDouble型使うなぁ
56デフォルトの名無しさん (ワッチョイ 924f-tqDZ)
2021/03/26(金) 08:07:23.35ID:3Vso6amb0 >>52
シリアル値で日付までが整数部で時間から小数点になるから小数点扱える型なのにミリ秒が扱えないと言うのが
ちょっと引っ掛かったので調べてみたよ。
方式はセルにミリ秒まで表示出来るフォーマットを設定して(yyyy/mm/dd hh:mm:ss.000)
隣のセルにその値を代入する数式を書いて、数値で小数点16桁くらい表示するようなフォーマットを設定して、
またその隣にそのセルの値を代入してセルにミリ秒まで表示するフォーマットのセルを用意して
元の値が正しく表示されるか確認した。
で、VBAで最初のセルの値をDATE型の変数に入れてDouble型に変換したら、
キチンと2番目のセルと同じ頭になることが確認出来たので、DATE型はミリ秒まで持てることが分かった。
じゃ、何で丸められちゃうの?
と言うことになると思うけど、どうやらこういうことらしい。
https://support.microsoft.com/ja-jp/topic/excel-ワークシートのセルに-vba-の日付形式またはバリアント型の日付形式を割り当てようとすると-ミリ秒が最も近い秒に丸められます-4a0af2c5-78de-762f-6431-8669890f585b
シリアル値で日付までが整数部で時間から小数点になるから小数点扱える型なのにミリ秒が扱えないと言うのが
ちょっと引っ掛かったので調べてみたよ。
方式はセルにミリ秒まで表示出来るフォーマットを設定して(yyyy/mm/dd hh:mm:ss.000)
隣のセルにその値を代入する数式を書いて、数値で小数点16桁くらい表示するようなフォーマットを設定して、
またその隣にそのセルの値を代入してセルにミリ秒まで表示するフォーマットのセルを用意して
元の値が正しく表示されるか確認した。
で、VBAで最初のセルの値をDATE型の変数に入れてDouble型に変換したら、
キチンと2番目のセルと同じ頭になることが確認出来たので、DATE型はミリ秒まで持てることが分かった。
じゃ、何で丸められちゃうの?
と言うことになると思うけど、どうやらこういうことらしい。
https://support.microsoft.com/ja-jp/topic/excel-ワークシートのセルに-vba-の日付形式またはバリアント型の日付形式を割り当てようとすると-ミリ秒が最も近い秒に丸められます-4a0af2c5-78de-762f-6431-8669890f585b
57デフォルトの名無しさん (ワンミングク MM62-6iI7)
2021/03/26(金) 12:00:33.82ID:scqWQXi5M >>53-56
ありがとうございます
勉強中でVBAの動きを理解したいだけで、何がしたいという訳ではないです
調べてみましたが以下の理解で合っていますか?
・シリアル値はDouble型の情報
・日付(Date型)はシリアル値の表示形式を"yyyy/mm/dd h:mm:ss"に変更しているイメージ
内部ではミリ秒含むシリアル値を持っており、ミリ秒以下の情報が九められた訳ではない
・シリアル値とDate型はCDbl とCDateで相互変換可能。このときもミリ秒以下の情報は丸められない
・ミリ秒が丸められるのは、Date型をセルに=で代入したとき
これは、Date型の表示をセルにコピーしているため
・セルにDate型でなくシリアル値を代入することで回避できる
ありがとうございます
勉強中でVBAの動きを理解したいだけで、何がしたいという訳ではないです
調べてみましたが以下の理解で合っていますか?
・シリアル値はDouble型の情報
・日付(Date型)はシリアル値の表示形式を"yyyy/mm/dd h:mm:ss"に変更しているイメージ
内部ではミリ秒含むシリアル値を持っており、ミリ秒以下の情報が九められた訳ではない
・シリアル値とDate型はCDbl とCDateで相互変換可能。このときもミリ秒以下の情報は丸められない
・ミリ秒が丸められるのは、Date型をセルに=で代入したとき
これは、Date型の表示をセルにコピーしているため
・セルにDate型でなくシリアル値を代入することで回避できる
58デフォルトの名無しさん (ワッチョイ 5eda-bGNI)
2021/03/26(金) 12:08:12.92ID:RjaLBbvt0 (´-`).。oO(「丸める」をどう入力したら「九める」となるのだろう・・・知らんけど)
59デフォルトの名無しさん (ワッチョイ 924f-tqDZ)
2021/03/26(金) 12:44:01.98ID:3Vso6amb060デフォルトの名無しさん (ワッチョイ 8101-XUQ7)
2021/03/26(金) 16:10:18.31ID:xthmZvz4061デフォルトの名無しさん (ワッチョイ 655f-luGl)
2021/03/26(金) 17:55:08.09ID:YMBMwB0G062デフォルトの名無しさん (ワンミングク MM62-6iI7)
2021/03/26(金) 18:28:35.59ID:scqWQXi5M ありがとうございます
これ以上は突き詰めないようにします
ここまで解説してるサイトはほとんど見当たりませんでしたが、
Application.Waitの引数にVBAの関数を使うと何故精度が低くなるのか?など
ここまで理解して初めて分かることもあったので良かったです
ちなみに丸が九になったのはパソコンで打った文章をスマホで取り込んだからですね
これ以上は突き詰めないようにします
ここまで解説してるサイトはほとんど見当たりませんでしたが、
Application.Waitの引数にVBAの関数を使うと何故精度が低くなるのか?など
ここまで理解して初めて分かることもあったので良かったです
ちなみに丸が九になったのはパソコンで打った文章をスマホで取り込んだからですね
63デフォルトの名無しさん (ワッチョイ b18e-COrd)
2021/03/26(金) 20:17:02.94ID:9W175/Ms0 馬鹿は入力機器で漢字コードが決まると思っているのか
64デフォルトの名無しさん (ワッチョイ 655f-luGl)
2021/03/26(金) 20:24:40.81ID:YMBMwB0G0 漢字コードとは古臭いw
65デフォルトの名無しさん (ワッチョイ 655f-luGl)
2021/03/26(金) 20:27:23.31ID:YMBMwB0G0 JISコード時代の俗称だぞ。
66デフォルトの名無しさん (ワッチョイ b18e-COrd)
2021/03/26(金) 20:58:19.29ID:9W175/Ms0 JISとかEBCDICとか古いこと自慢か?
67デフォルトの名無しさん (ブーイモ MMa6-jVD9)
2021/03/26(金) 22:02:40.63ID:AwqZOL59M 5chはジジイの巣窟です
昔話に花が咲くのです
昔話に花が咲くのです
68デフォルトの名無しさん (ワッチョイ 655f-j37g)
2021/03/26(金) 23:45:57.50ID:YMBMwB0G0 漢字ROMの時代からやってきた過去の人
69デフォルトの名無しさん (ワッチョイ 8101-lcsw)
2021/03/27(土) 20:27:21.67ID:5nK2M5CU0 質問させてください
worksheetfunctionでsumifやcountifを使用する際の範囲指定はrange(cells(),cells ())と指定する方がいいのか、cells ().resize()と指定する方がいいのか、どっちでしょう?
皆さんはどっちを使用していますか?
worksheetfunctionでsumifやcountifを使用する際の範囲指定はrange(cells(),cells ())と指定する方がいいのか、cells ().resize()と指定する方がいいのか、どっちでしょう?
皆さんはどっちを使用していますか?
70デフォルトの名無しさん (ワイーワ2 FF1a-j37g)
2021/03/27(土) 21:10:41.58ID:/5jOHbkqF rangeは特殊だからはまりやすい。
71デフォルトの名無しさん (ワッチョイ 1242-lMfL)
2021/03/27(土) 21:23:53.88ID:+4xxppTF0 範囲をどうやって決めているかによる
72デフォルトの名無しさん (ワッチョイ 8101-lcsw)
2021/03/27(土) 21:28:05.27ID:5nK2M5CU0 一般的な場合として、例えば最大行までの範囲とした場合はどうでしょうか?
初心者なので、最近、resizeを学んだばっかりなのですが、resizeの方がすっきりしてるような気がするけど、rangeの方がパッと見、分かりやすいよなぁと思いまして
初心者なので、最近、resizeを学んだばっかりなのですが、resizeの方がすっきりしてるような気がするけど、rangeの方がパッと見、分かりやすいよなぁと思いまして
73デフォルトの名無しさん (ワッチョイ 655f-ow1w)
2021/03/27(土) 21:49:27.21ID:WrV3x1Cf0 たしかえくせるちゅんちゅんでそんな解説記事あったよ
おれは範囲指定だったらrangeかな
resizeは増やす値をちゃんと考慮しないと間違えやすいんだよな
おれは範囲指定だったらrangeかな
resizeは増やす値をちゃんと考慮しないと間違えやすいんだよな
74デフォルトの名無しさん (ドコグロ MM9a-eYIm)
2021/03/27(土) 22:29:55.09ID:kX/HYgzKM75デフォルトの名無しさん (アウアウウー Sacd-GqLf)
2021/03/27(土) 22:36:49.88ID:DIdh8j19a テーブルにすればRangeでCellsを囲う必要がなくなるから、まずテーブルにできるかから考えてみれば
76デフォルトの名無しさん (ワッチョイ b163-VcSF)
2021/03/28(日) 12:09:35.83ID:gO7qo7Yf0 現在6秒に1回実行するマクロを組んでいるのですが、
複数のエクセルファイルを開いてそのマクロを実行すると、
マクロを実行しているファイルとは別のエクセルファイルを
マウス等で触ってアクティブにすると、関係のないそのエクセルファイルで
そのマクロが実行されて、肝心のマクロが肝心のファイルで実行されず、
エラーになるという現象で悩まされています。
例えば、ファイル名「A」、ファイル名「B」のエクセルファイルがあり、
ファイル名「A」の中にマクロでセルF1を6秒間隔で選択するコードがあると、
6秒間隔で更新している時にファイル名「B」を触ると(アクティブになる)、
ファイル名「B」のセルF1を選択してしまうのです。本来はファイル名「A」
で組んでいえるのでファイル名Aで実行されなければいけないのに。。。
ファイル名、シート名を指定して他のファイルでは実行できないようにコードを
入れてみたのですが治りません。どうすればよいのでしょうか?
ご教授お願いします。
複数のエクセルファイルを開いてそのマクロを実行すると、
マクロを実行しているファイルとは別のエクセルファイルを
マウス等で触ってアクティブにすると、関係のないそのエクセルファイルで
そのマクロが実行されて、肝心のマクロが肝心のファイルで実行されず、
エラーになるという現象で悩まされています。
例えば、ファイル名「A」、ファイル名「B」のエクセルファイルがあり、
ファイル名「A」の中にマクロでセルF1を6秒間隔で選択するコードがあると、
6秒間隔で更新している時にファイル名「B」を触ると(アクティブになる)、
ファイル名「B」のセルF1を選択してしまうのです。本来はファイル名「A」
で組んでいえるのでファイル名Aで実行されなければいけないのに。。。
ファイル名、シート名を指定して他のファイルでは実行できないようにコードを
入れてみたのですが治りません。どうすればよいのでしょうか?
ご教授お願いします。
77デフォルトの名無しさん (JP 0Hd5-UUyU)
2021/03/28(日) 12:41:13.75ID:SibCEmYdH >>76
コードの中の全部のRangeやCellsにもブック名とシート名を書いてある?
コードの中の全部のRangeやCellsにもブック名とシート名を書いてある?
78デフォルトの名無しさん (ブーイモ MMd5-krmx)
2021/03/28(日) 12:53:44.04ID:vqLmoR8/M 面倒なのは分かるが意図しない動作をする時はF8で1ステップずつ挙動を確認したりデスクに適当な人形をおいてコードを1行1行何をしている行なのかを人形に対して声に出しながら説明すると原因を突き止めやすいぞ
79デフォルトの名無しさん (ワッチョイ 5eda-bGNI)
2021/03/28(日) 13:27:37.72ID:slfnYujm0 当該ブックのアクティブ化とCallだけでやろうとしている?
これかしら?
Application.Run ‘パス+ブック名’!マクロ名
https://excelwork.info/excel/runmethod/
これかしら?
Application.Run ‘パス+ブック名’!マクロ名
https://excelwork.info/excel/runmethod/
80デフォルトの名無しさん (アウアウウー Sacd-N2Bw)
2021/03/28(日) 14:55:28.65ID:0AXzz3HSa thisworkbookでいいんじゃね
81デフォルトの名無しさん (ワッチョイ 0901-bb0G)
2021/03/28(日) 15:28:42.70ID:58jRB2Jo0 >>76
これだとアクティブなシートの[A1]に入力されます
Range("A1")=1
これだと指定したファイルの指定したシートの[A1]に入力されます
Workbooks("Book1").Worksheets("Sheet1").Range("A1") = 1
これだとアクティブなシートの[A1]に入力されます
Range("A1")=1
これだと指定したファイルの指定したシートの[A1]に入力されます
Workbooks("Book1").Worksheets("Sheet1").Range("A1") = 1
82デフォルトの名無しさん (ササクッテロル Sp79-tqDZ)
2021/03/28(日) 17:37:33.16ID:NPcBjbDnp まーおそらく値の設定時に
ちゃんとどのブック、どのシートって
設定されていないんだろうけど
もっと気になるのは6秒というスパンの中で
処理が6秒を間に合わなかったらどうするのか
ちゃんと考えて作っていのかってことかな
大きなお世話かも知れんけど
ちゃんとどのブック、どのシートって
設定されていないんだろうけど
もっと気になるのは6秒というスパンの中で
処理が6秒を間に合わなかったらどうするのか
ちゃんと考えて作っていのかってことかな
大きなお世話かも知れんけど
83デフォルトの名無しさん (ワッチョイ d2e6-WhAp)
2021/03/28(日) 18:29:23.67ID:vpNC6cf/0 セルの編集は6秒あれば楽勝です
84デフォルトの名無しさん (スップ Sd12-wiwq)
2021/03/28(日) 20:03:24.72ID:5/aHi+ebd >>40
自分が書き込んだかと思ったわw
自分が書き込んだかと思ったわw
85デフォルトの名無しさん (ワッチョイ a2bd-9S/5)
2021/03/28(日) 20:31:26.17ID:y1jMexrp0 UIAutomationでInvokeをするVBAマクロをタスクスケジューラで
日次・定時に起動しているのですがロック画面ではInvokeが実行されません
解決策をご存知でしたらご教示お願いします
日次・定時に起動しているのですがロック画面ではInvokeが実行されません
解決策をご存知でしたらご教示お願いします
86デフォルトの名無しさん (ワッチョイ 9eda-UUyU)
2021/03/28(日) 21:54:46.91ID:FtDhz91V0 ロック画面にしない
87デフォルトの名無しさん (アウアウウー Sacd-N2Bw)
2021/03/29(月) 18:09:13.47ID:RBGHkQmra もはやexcelの問題じゃねーし
88デフォルトの名無しさん (アウアウウー Sacd-ihLa)
2021/03/29(月) 19:13:47.90ID:QhuH86uEa なんでFINDで探せないんだろ
とおもったら
改行コードがはいっていたでござる
やれやれ
とおもったら
改行コードがはいっていたでござる
やれやれ
89デフォルトの名無しさん (ワッチョイ 62ee-1mGO)
2021/03/30(火) 17:58:10.32ID:0EHjDb6N0 質問です
前はExcel2010の時はレジストリを維持って、VBAファイルだけはインスタンス起動が出来るようにするとか可能でしたが
2019にするとインスタンス起動ができなくなってました。
.xlsmファイルだけインスタンス起動するとか方法はないでしょうか
前はExcel2010の時はレジストリを維持って、VBAファイルだけはインスタンス起動が出来るようにするとか可能でしたが
2019にするとインスタンス起動ができなくなってました。
.xlsmファイルだけインスタンス起動するとか方法はないでしょうか
90デフォルトの名無しさん (ワッチョイ 9eda-UUyU)
2021/03/31(水) 04:17:21.25ID:1Kn3VVGI0 右クリックして[新規] じゃだめなのか?
9176です。 (ワッチョイ b163-VcSF)
2021/03/31(水) 18:32:23.42ID:Evr26ox50 回答くださった皆さん本当に有難うございます。
これから回答いただいた対処法を全て1個1個試していこうと思います。
なお6秒に一回とは、エクセルのセルに株価をリアルタイムで
反映するソフトがあるのですが、それで株のアラート機能を
VBAで自作で作っているので必要なのです。
ではでは。
これから回答いただいた対処法を全て1個1個試していこうと思います。
なお6秒に一回とは、エクセルのセルに株価をリアルタイムで
反映するソフトがあるのですが、それで株のアラート機能を
VBAで自作で作っているので必要なのです。
ではでは。
2021/03/31(水) 20:42:46.87
sheet1のA1には
https://www.jma.go.jp/英数字
A3からA10000には、それぞれ異なるURLが記載されています
B1には
https://maps.gsi.go.jp/index_m.htmlhttps://www.mlit.go.jp/river/toukei_chousa/kasen/jiten/nihon_kawa/0305_edogawa/0305_edogawa_00.htmlhttps://www.jice.or.jp/knowledge/japan/commentary03
みたいなURLが繋がっている文字列があります
B2からB10000には、上の様なURLが繋がっている文字列があります
A1からA3は
https://www.jma.go.jp/英数字
B1
https://maps.gsi.go.jp/index_m.html
B2
https://www.mlit.go.jp/river/toukei_chousa/kasen/jiten/nihon_kawa/0305_edogawa/0305_edogawa_00.html
B3
https://www.jice.or.jp/knowledge/japan/commentary03
みたいにB列にあるセル内を分解して、分解した分だけA列にA1の文字列を補う処理
以降B10000までを処理して
sheet2に記載したいのですが、どのようにすればよいでしょうか?
https://www.jma.go.jp/英数字
A3からA10000には、それぞれ異なるURLが記載されています
B1には
https://maps.gsi.go.jp/index_m.htmlhttps://www.mlit.go.jp/river/toukei_chousa/kasen/jiten/nihon_kawa/0305_edogawa/0305_edogawa_00.htmlhttps://www.jice.or.jp/knowledge/japan/commentary03
みたいなURLが繋がっている文字列があります
B2からB10000には、上の様なURLが繋がっている文字列があります
A1からA3は
https://www.jma.go.jp/英数字
B1
https://maps.gsi.go.jp/index_m.html
B2
https://www.mlit.go.jp/river/toukei_chousa/kasen/jiten/nihon_kawa/0305_edogawa/0305_edogawa_00.html
B3
https://www.jice.or.jp/knowledge/japan/commentary03
みたいにB列にあるセル内を分解して、分解した分だけA列にA1の文字列を補う処理
以降B10000までを処理して
sheet2に記載したいのですが、どのようにすればよいでしょうか?
93デフォルトの名無しさん (ワッチョイ 9279-LIGC)
2021/03/31(水) 22:33:41.42ID:GYCr8oLd0 何言ってるのか判らんが
好きなようにやればいいよ
好きなようにやればいいよ
94デフォルトの名無しさん (ワッチョイ 655f-j37g)
2021/04/01(木) 00:43:47.27ID:Qm9pGYRd095デフォルトの名無しさん (ワッチョイ b163-VcSF)
2021/04/01(木) 02:05:44.32ID:GioFRFH3096デフォルトの名無しさん (ワッチョイ 655f-j37g)
2021/04/01(木) 03:02:30.23ID:Qm9pGYRd0 変な外国人が作ったんだろうなあ
97デフォルトの名無しさん (スフッ Sdb2-UUyU)
2021/04/01(木) 09:31:40.60ID:JyQIT704d 「珍味」ってそういう使い方する言葉だっけ
98デフォルトの名無しさん (アウアウウー Sacd-GqLf)
2021/04/01(木) 10:40:32.36ID:Jj+/G5yda たぶん珍妙
99デフォルトの名無しさん (スフッ Sdb2-pdRJ)
2021/04/01(木) 10:48:06.97ID:jNbL4ETRd ワークシートの一部を画像として保存する方法にChartObjectsのExportメソッドがあります
が、罫線が一部消えてしまったりフォントが潰れたりして、画質が悪いのが気に入りません
もっと高画質で範囲指定してスクショを保存する方法はないでしょうか?
が、罫線が一部消えてしまったりフォントが潰れたりして、画質が悪いのが気に入りません
もっと高画質で範囲指定してスクショを保存する方法はないでしょうか?
100デフォルトの名無しさん (ワッチョイ 6963-VcSF)
2021/04/01(木) 11:51:22.66ID:tUMm1OA70 >>99
クリップボードを手作業で切り取る際、エクセルの倍率
(Ctrl+マウススクロールで変えれるあれ)を100%よりも大きい高倍率で
切り取った方が画質が良い。
従って、その画像を取得するマクロの直前に、
エクセルの画面の大きさを変えれるコードがあるので、
それを直前に入れ、それを切り取れば恐らく高画質のが出来るんじゃないかな。
最後は勿論ばい倍率をもとに戻すマクロを入れれば良いと思う。
クリップボードを手作業で切り取る際、エクセルの倍率
(Ctrl+マウススクロールで変えれるあれ)を100%よりも大きい高倍率で
切り取った方が画質が良い。
従って、その画像を取得するマクロの直前に、
エクセルの画面の大きさを変えれるコードがあるので、
それを直前に入れ、それを切り取れば恐らく高画質のが出来るんじゃないかな。
最後は勿論ばい倍率をもとに戻すマクロを入れれば良いと思う。
101デフォルトの名無しさん (ワッチョイ 62ee-Bi/r)
2021/04/01(木) 12:01:45.09ID:fy6TS88x0 >>90
インスタンス起動ではないですよね
インスタンス起動ではないですよね
102デフォルトの名無しさん (ワッチョイ b12c-NN47)
2021/04/01(木) 15:56:27.00ID:yB6nLlLi0 >>92
Ruby で作った。
正規表現の否定先読みなどを使えば、もっとスマートに書けるかも
# ? は、直前のパターンの0〜1回の繰り返し。「https?」は、「http|https」と同じ意味
re = %r!(https?://)! #=> https?:\/\/
input_str = %w(https://a/b.html http://c https://x/y).join
#=> "https://a/b.htmlhttp://chttps://x/y"
pos = input_str.size # 文字列の末尾の位置
results = [ ]
# 文字列の末尾から、一致させていく
while pos = input_str.rindex( re, pos )
# 一致した位置から末尾までを削除して、それを配列の先頭に追加していく
results.unshift input_str.slice!( pos..-1 )
end
p results #=> ["https://a/b.html", "http://c", "https://x/y"]
Ruby で作った。
正規表現の否定先読みなどを使えば、もっとスマートに書けるかも
# ? は、直前のパターンの0〜1回の繰り返し。「https?」は、「http|https」と同じ意味
re = %r!(https?://)! #=> https?:\/\/
input_str = %w(https://a/b.html http://c https://x/y).join
#=> "https://a/b.htmlhttp://chttps://x/y"
pos = input_str.size # 文字列の末尾の位置
results = [ ]
# 文字列の末尾から、一致させていく
while pos = input_str.rindex( re, pos )
# 一致した位置から末尾までを削除して、それを配列の先頭に追加していく
results.unshift input_str.slice!( pos..-1 )
end
p results #=> ["https://a/b.html", "http://c", "https://x/y"]
103102 (ワッチョイ b12c-NN47)
2021/04/01(木) 16:01:13.59ID:yB6nLlLi0104デフォルトの名無しさん (ワッチョイ 698f-UUyU)
2021/04/01(木) 16:53:17.71ID:7y1pTd6e0 >>94
オプションのスマイルカーブをリアルタイムに描画するエクセルソフトとかもあるよ。
オプションのスマイルカーブをリアルタイムに描画するエクセルソフトとかもあるよ。
105デフォルトの名無しさん (ワイーワ2 FF1a-j37g)
2021/04/01(木) 17:08:13.22ID:jznaQuthF 外部からローカルのファイルを更新するなんてマルウェアみたいだな。
106デフォルトの名無しさん (ワッチョイ b65c-jyiE)
2021/04/01(木) 21:32:16.81ID:5T6IIfi20 >>95
配当なんてせいぜい数%
そこから税金2割引かれる
値上がり益は株価が永遠に上がり続けない限り期待値はゼロで、儲かったら2割税金、損しても2割補填してもらえるなんてことはない
つまり税金を考慮した期待値はマイナス
配当なんてせいぜい数%
そこから税金2割引かれる
値上がり益は株価が永遠に上がり続けない限り期待値はゼロで、儲かったら2割税金、損しても2割補填してもらえるなんてことはない
つまり税金を考慮した期待値はマイナス
107デフォルトの名無しさん (ワッチョイ b12c-NN47)
2021/04/01(木) 23:13:35.12ID:yB6nLlLi0 >損しても2割補填してもらえるなんてことはない
補填してもらえる。
何年か損失を繰り越ししていれば、儲かった時に相殺される
長年、銀行が税金を払わないのは繰越損失があるので、
その後、利益が出ても相殺されるから
補填してもらえる。
何年か損失を繰り越ししていれば、儲かった時に相殺される
長年、銀行が税金を払わないのは繰越損失があるので、
その後、利益が出ても相殺されるから
108デフォルトの名無しさん (ワッチョイ e3f0-+VUH)
2021/04/02(金) 20:32:20.64ID:OjzTopDr0109デフォルトの名無しさん (アウアウウー Sae9-IEtB)
2021/04/03(土) 10:18:57.57ID:0vCxCYiYa 最近のはinternetexploreを許否するwebがあるからこまる
スマホならともかくビジネスではまだ主流なのに
スマホならともかくビジネスではまだ主流なのに
110デフォルトの名無しさん (スフッ Sd43-0pr0)
2021/04/03(土) 10:25:49.87ID:RckTLwqyd さすがワッチョイにIEを出す男は言うことが違う
111デフォルトの名無しさん (ワントンキン MMa3-7UwS)
2021/04/03(土) 10:59:03.48ID:D2e+M4g2M Web開発でIE対応が要件にないときにはむしろ意図的にIEで動かないようにするわ
勝手にIEで使われて文句言われるの最高にウザい
勝手にIEで使われて文句言われるの最高にウザい
112デフォルトの名無しさん (テテンテンテン MM4b-0Ghs)
2021/04/03(土) 13:29:03.89ID:XPTw6Pj4M >>33
自己レスだがわかったわ
WEBクエリでWEB内容をシートに書き出す
その中から出来高とかのワードをfindで探して
そのワードのn行後を取ってくる
みたいな動作をしてるんだけど、
ヤフーファイナンスの仕様が変わって
n行後の場所が変更になってた
ETFだけは従来の場所だから
上記結果がゼロならば違う場所を
取ってくるようにした
コピペプログラマだから
今回findとかOffsetを強制的に
学ばされて勉強になった
自己レスだがわかったわ
WEBクエリでWEB内容をシートに書き出す
その中から出来高とかのワードをfindで探して
そのワードのn行後を取ってくる
みたいな動作をしてるんだけど、
ヤフーファイナンスの仕様が変わって
n行後の場所が変更になってた
ETFだけは従来の場所だから
上記結果がゼロならば違う場所を
取ってくるようにした
コピペプログラマだから
今回findとかOffsetを強制的に
学ばされて勉強になった
113デフォルトの名無しさん (ファミワイ FF79-IEtB)
2021/04/03(土) 13:43:31.82ID:LoNYZ+kpF114デフォルトの名無しさん (ワッチョイ 1b09-vnSj)
2021/04/04(日) 02:10:27.86ID:7SFCjwlv0 ListViewのすべての項目を一発で削除する方法はありませんか?
ListBoxならClearメソッドが使えるようなのですが
ListBoxならClearメソッドが使えるようなのですが
115デフォルトの名無しさん (ブーイモ MMa9-0pr0)
2021/04/04(日) 03:01:59.01ID:OlWsfN+XM >>114
ListView.ListItems.Clear
ListView.ListItems.Clear
116デフォルトの名無しさん (ワッチョイ b501-Yokr)
2021/04/04(日) 04:07:16.17ID:hsI5tKvB0 別ブックから別ブックへ値を持ってきたいときって、コピーか配列使うしかないですか?
コピーペーストは処理重そうでスマートっぽくないし、配列は張り付ける範囲をちゃんと指定しなきゃダメなのがめんどくさそうなんですけど、いい方法ないですか?
コピーペーストは処理重そうでスマートっぽくないし、配列は張り付ける範囲をちゃんと指定しなきゃダメなのがめんどくさそうなんですけど、いい方法ないですか?
117デフォルトの名無しさん (アウアウウー Sae9-IEtB)
2021/04/04(日) 06:20:04.03ID:5jDGrLPha コピーでいいやん
118デフォルトの名無しさん (テテンテンテン MM4b-9RaQ)
2021/04/04(日) 13:08:15.45ID:X/c7fPAEM119デフォルトの名無しさん (ワッチョイ 1b09-vnSj)
2021/04/04(日) 13:44:02.06ID:7SFCjwlv0 >>115
ありがとうございます!うまくいきました
すみませんがListViewについてもう一つ教えていただけないでしょうか
MultiSelect=Trueのときの選択項目数をラベルに表示させたいと思っています
リストが選択されるたびに表示を更新したいのですが、なにかいい方法はないでしょうか
ItemClickイベントで項目数を数えようとしましたが、選択数分イベントが発生するため項目数が増えると重くなってしまいます
ListBoxのChangeイベントのように複数選択しても一度しか発生しないイベントがあるといいのですが、無さそうなので困っています
ありがとうございます!うまくいきました
すみませんがListViewについてもう一つ教えていただけないでしょうか
MultiSelect=Trueのときの選択項目数をラベルに表示させたいと思っています
リストが選択されるたびに表示を更新したいのですが、なにかいい方法はないでしょうか
ItemClickイベントで項目数を数えようとしましたが、選択数分イベントが発生するため項目数が増えると重くなってしまいます
ListBoxのChangeイベントのように複数選択しても一度しか発生しないイベントがあるといいのですが、無さそうなので困っています
120デフォルトの名無しさん (ワッチョイ e33d-K4o7)
2021/04/04(日) 17:46:13.14ID:JgvM3WMx0 >>116
コピー元もコピー先もシートを変数に入れておけば変数シート.セルで指定は少しスマートにできる
コピー元もコピー先もシートを変数に入れておけば変数シート.セルで指定は少しスマートにできる
121デフォルトの名無しさん (ワッチョイ b501-Yokr)
2021/04/04(日) 18:49:59.93ID:hsI5tKvB0122デフォルトの名無しさん (ワッチョイ e336-Yl66)
2021/04/05(月) 04:34:52.29ID:3N8BM4zS0 セルには0.9って入力してあるのに
VBAのcellsでそれを取得すると1と認識されるんですが
勝手に小数点以下を切り捨てないようにするにはどうしたらいいですか?
VBAのcellsでそれを取得すると1と認識されるんですが
勝手に小数点以下を切り捨てないようにするにはどうしたらいいですか?
123デフォルトの名無しさん (ワッチョイ 23ad-q0SB)
2021/04/05(月) 07:04:34.80ID:FxhyQ6l10 Currency型の変数に代入する
124デフォルトの名無しさん (ワッチョイ 234f-bYzF)
2021/04/05(月) 07:43:12.07ID:CnxjloBy0 >>123
そだね
ただCurrency型は小数点4桁までしか扱えないから
上記みたいに小数点1桁だったらいいけど
5桁以上扱ったり掛けたり割ったりする場合はDoubleの方がいいかな
ただ、Double型の場合は
浮動小数点あつかいでIEEE754規格だから
変に丸められちゃうことがあるんでかけ算割り算行う時は
一度整数にして計算してやる必要があるけど
まぁ使い所でどの型使うのか分けて使うのがいいかもね
そだね
ただCurrency型は小数点4桁までしか扱えないから
上記みたいに小数点1桁だったらいいけど
5桁以上扱ったり掛けたり割ったりする場合はDoubleの方がいいかな
ただ、Double型の場合は
浮動小数点あつかいでIEEE754規格だから
変に丸められちゃうことがあるんでかけ算割り算行う時は
一度整数にして計算してやる必要があるけど
まぁ使い所でどの型使うのか分けて使うのがいいかもね
125デフォルトの名無しさん (ワッチョイ e336-Yl66)
2021/04/05(月) 12:36:23.48ID:3N8BM4zS0126デフォルトの名無しさん (ワッチョイ cbda-0pr0)
2021/04/05(月) 17:42:39.68ID:GNHugBRe0 >>122
0.9の小数点以下を切り捨てたら 0 じゃね
0.9の小数点以下を切り捨てたら 0 じゃね
127デフォルトの名無しさん (アウアウウー Sae9-K4o7)
2021/04/05(月) 18:04:06.91ID:34gLfvfqa 別にInteger使う理由もないしlongにしちゃえばとも思う
128デフォルトの名無しさん (ワッチョイ cbda-Yl66)
2021/04/05(月) 19:09:20.57ID:IFZcDQ1J0 >>126
たしかに
たしかに
129デフォルトの名無しさん (アウアウウー Sae9-IEtB)
2021/04/06(火) 06:08:10.23ID:KMOOpCjWa 型を指定すると遅くなるから
できるだけ指定なしがよいよ
マクロらしさを生かそう
できるだけ指定なしがよいよ
マクロらしさを生かそう
130デフォルトの名無しさん (ワッチョイ e33d-K4o7)
2021/04/06(火) 07:02:52.46ID:Au4GybQm0 >>129
メンテが遅くなるからだめ
メンテが遅くなるからだめ
131デフォルトの名無しさん (ワッチョイ 234f-bYzF)
2021/04/06(火) 10:21:14.29ID:e+L9SfjT0 >>129
おいおいw
いくら質問スレで初心者だらけだからって
適当なことを教えてはいけない
指定しなかった型には自動的にVariant型が割り当てられて
本来Integer型だったりLong型で済むものに莫大なメモリを割り当てるし当然処理速度も遅くなる
VBAは比較的型の扱いが雑でも何とかなる方ではあるが
頭にプログラムの頭にOption Explicit付けといて型は明示的に設定する癖をつけておいた方がいい
おいおいw
いくら質問スレで初心者だらけだからって
適当なことを教えてはいけない
指定しなかった型には自動的にVariant型が割り当てられて
本来Integer型だったりLong型で済むものに莫大なメモリを割り当てるし当然処理速度も遅くなる
VBAは比較的型の扱いが雑でも何とかなる方ではあるが
頭にプログラムの頭にOption Explicit付けといて型は明示的に設定する癖をつけておいた方がいい
132デフォルトの名無しさん (ワッチョイ 1dcc-kjVL)
2021/04/06(火) 11:09:39.71ID:jDDsYkyr0 複数の多次元配列をプロシージャに参照渡しするときはどう書けばいいですか
こう書くとスルーされます。
Sub Smple()
Dim ara(2,4) As Variant, arb(85,3) As Variant, arc As Variant)
・・・略
Call SheetCreate(ara(),arb(),arc())
End Sub
Sub SheetCreate(ByRef ara As Variant, ByRef arb As Variant, ByRef As arc As Variant)
・・・略
End Sub
こう書くとスルーされます。
Sub Smple()
Dim ara(2,4) As Variant, arb(85,3) As Variant, arc As Variant)
・・・略
Call SheetCreate(ara(),arb(),arc())
End Sub
Sub SheetCreate(ByRef ara As Variant, ByRef arb As Variant, ByRef As arc As Variant)
・・・略
End Sub
133デフォルトの名無しさん (ワッチョイ 234f-bYzF)
2021/04/06(火) 12:45:54.77ID:e+L9SfjT0 >>132
うん、まあ
引数の型をVariantにしているからでしょうなぁ
何故Variantにすると値渡しになるのかは分からんけど
ちゃんと変数宣言のところで
StringとかIntegerとかの配列型宣言をして
呼び出される関数の引数にも
それに見合った型にすれば参照渡しされるんじゃない?
試してみて
うん、まあ
引数の型をVariantにしているからでしょうなぁ
何故Variantにすると値渡しになるのかは分からんけど
ちゃんと変数宣言のところで
StringとかIntegerとかの配列型宣言をして
呼び出される関数の引数にも
それに見合った型にすれば参照渡しされるんじゃない?
試してみて
134132 (ワッチョイ 1dcc-kjVL)
2021/04/06(火) 14:36:15.96ID:jDDsYkyr0 >133
知らなかったです。ありがとうございます
知らなかったです。ありがとうございます
135デフォルトの名無しさん (テテンテンテン MM4b-/elG)
2021/04/06(火) 14:39:05.93ID:7PISA/BhM >>132
普通に
Sub Smple()
Dim ara(2,4) As Variant, arb(85,3) As Variant, arc As Variant
・・・略
Call SheetCreate(ara, arb, arc)
End Sub
Sub SheetCreate(ara As Variant, arb As Variant, arc As Variant)
・・・略
End Sub
って書けばいいだけだと思う
普通に
Sub Smple()
Dim ara(2,4) As Variant, arb(85,3) As Variant, arc As Variant
・・・略
Call SheetCreate(ara, arb, arc)
End Sub
Sub SheetCreate(ara As Variant, arb As Variant, arc As Variant)
・・・略
End Sub
って書けばいいだけだと思う
136132 (ワッチョイ 1dcc-kjVL)
2021/04/06(火) 19:30:17.02ID:jDDsYkyr0 >>135
最初はそれでやっていたのですが、同じくスルーされてました
このサブプロシージャ内でブレークポイントを設定しても止まらなかったので、サブプロシージャがスルーされていると思っていたのですが、
サブプロシージャを外しても止まらず、別のファイルに書き換えたら動くようになりました。
最初はそれでやっていたのですが、同じくスルーされてました
このサブプロシージャ内でブレークポイントを設定しても止まらなかったので、サブプロシージャがスルーされていると思っていたのですが、
サブプロシージャを外しても止まらず、別のファイルに書き換えたら動くようになりました。
137デフォルトの名無しさん (スップ Sd43-0pr0)
2021/04/06(火) 19:51:59.72ID:JmeclF78d ブレークポイントで止まらないのはおかしい
根本的に別のとこで間違ってる
根本的に別のとこで間違ってる
138デフォルトの名無しさん (アウアウウー Sae9-IEtB)
2021/04/06(火) 20:36:50.07ID:DMwNdxSba うむ、おかしい
139デフォルトの名無しさん (ワッチョイ 5d49-kSr3)
2021/04/06(火) 22:23:14.18ID:kxv5hjcy0 Sub Smple()
Dim ara(2, 4) As Variant, arb(85, 3) As Variant, arc As Variant
Call SheetCreate(ara, arb, arc)
End Sub
Sub SheetCreate(ByRef ara() As Variant, ByRef arb() As Variant, ByRef arc As Variant)
End Sub
Dim ara(2, 4) As Variant, arb(85, 3) As Variant, arc As Variant
Call SheetCreate(ara, arb, arc)
End Sub
Sub SheetCreate(ByRef ara() As Variant, ByRef arb() As Variant, ByRef arc As Variant)
End Sub
140デフォルトの名無しさん (ワッチョイ e5da-jIYQ)
2021/04/07(水) 19:30:33.27ID:aMJgToSe0 全部省略すれば勝手にByRefだと思ってけど違うの?
SheetCreate ara, arb, arc
Sub SheetCreate(ara, arb, arc)
End Sub
SheetCreate ara, arb, arc
Sub SheetCreate(ara, arb, arc)
End Sub
141デフォルトの名無しさん (JP 0H79-0pr0)
2021/04/07(水) 20:03:43.34ID:rHsSD320H142デフォルトの名無しさん (ワッチョイ cbda-0pr0)
2021/04/07(水) 20:42:25.04ID:Vn8Hoh2Q0 配列・オブ・カリビアン
143デフォルトの名無しさん (ワッチョイ 234f-bYzF)
2021/04/07(水) 20:47:54.61ID:nkaFkhSP0 >>141
不思議なんだよねー
配列変数だとByrefにしてもVariantで渡すと値渡しになることがある
よしんばVariantが値型だとしても値型の参照渡しで渡るのは参照渡しになるはずなのに何で?
不思議なんだよねー
配列変数だとByrefにしてもVariantで渡すと値渡しになることがある
よしんばVariantが値型だとしても値型の参照渡しで渡るのは参照渡しになるはずなのに何で?
144デフォルトの名無しさん (ワッチョイ 234f-bYzF)
2021/04/08(木) 15:04:36.48ID:6DaO6dJm0 色々しらべたよ
まず、VBAやってる人はByValとByRefくらいしか気にしない人多いけど、
そもそも変数には参照型と値型というのがあって値型は値そのものが変数に入っているけど
参照型というのは実体が入っているんじゃなくて実体の入っている場所の情報が入っているんだよ。
オブジェクトの類が参照型で、StringやIntegerなんかが値型。
参照渡し、値渡しとこの参照型、値型という組み合わせで何が渡るか決まるんだけど
参照型の参照渡し;
引数の入っているアドレス(場所)を見に行って、その引数の中に入っているアドレスに入っているものを見に行くから、
内容を変更すると関数で呼ぶ前のものも変更されるよ
値型の参照渡し;
引数の入っているアドレスをコピーしてそのアドレスが指してるところの値を見に行くから、
内容を変更すると関数で呼ぶ前のものも変更されるよ
参照型の値渡し:
引数の入ってる値をコピーするけど、その引数の中には実体の入ってるアドレスが入ってて、そっちを見に行くから
内容を変更すると関数で呼ぶ前のものも変更されるよ
値型の値渡し
引数の入ってる値をコピーして、そのコピーした値の内容も値そのものが入っているから
内容を変更しても関数を呼ぶ前のものは変更されないよ
まずこれが大前提ね
まず、VBAやってる人はByValとByRefくらいしか気にしない人多いけど、
そもそも変数には参照型と値型というのがあって値型は値そのものが変数に入っているけど
参照型というのは実体が入っているんじゃなくて実体の入っている場所の情報が入っているんだよ。
オブジェクトの類が参照型で、StringやIntegerなんかが値型。
参照渡し、値渡しとこの参照型、値型という組み合わせで何が渡るか決まるんだけど
参照型の参照渡し;
引数の入っているアドレス(場所)を見に行って、その引数の中に入っているアドレスに入っているものを見に行くから、
内容を変更すると関数で呼ぶ前のものも変更されるよ
値型の参照渡し;
引数の入っているアドレスをコピーしてそのアドレスが指してるところの値を見に行くから、
内容を変更すると関数で呼ぶ前のものも変更されるよ
参照型の値渡し:
引数の入ってる値をコピーするけど、その引数の中には実体の入ってるアドレスが入ってて、そっちを見に行くから
内容を変更すると関数で呼ぶ前のものも変更されるよ
値型の値渡し
引数の入ってる値をコピーして、そのコピーした値の内容も値そのものが入っているから
内容を変更しても関数を呼ぶ前のものは変更されないよ
まずこれが大前提ね
145デフォルトの名無しさん (ワッチョイ 234f-bYzF)
2021/04/08(木) 15:20:56.67ID:6DaO6dJm0 本題に入るね。
配列変数でもその辺は基本変わらないけど、
何故か値渡しにしようとすると構文エラーになるんだ
そんなときは呼び出し先の引数をVariant型に変えてあげればいいって話だけど、
Variant型にしても参照型のものは参照が見られるから内容を変えれば関数を呼び出す前の内容も変わるんだよね。
variant型の配列を作って値型のものと参照型のものを違う要素に入れてそれを引き数に値渡しで設定してあげると
参照型のものを入れた部分は変更すると関数呼び出す前のものにも反映され、値型の部分は変更が反映されない。
思ったよりお利口さんだったよ。
結論を言うと
何で配列でキチンと型設定して値渡ししようとすると構文エラーで落ちるんじゃマイクロソフトのボケが!!
と言うところに落ち着いたよ
配列変数でもその辺は基本変わらないけど、
何故か値渡しにしようとすると構文エラーになるんだ
そんなときは呼び出し先の引数をVariant型に変えてあげればいいって話だけど、
Variant型にしても参照型のものは参照が見られるから内容を変えれば関数を呼び出す前の内容も変わるんだよね。
variant型の配列を作って値型のものと参照型のものを違う要素に入れてそれを引き数に値渡しで設定してあげると
参照型のものを入れた部分は変更すると関数呼び出す前のものにも反映され、値型の部分は変更が反映されない。
思ったよりお利口さんだったよ。
結論を言うと
何で配列でキチンと型設定して値渡ししようとすると構文エラーで落ちるんじゃマイクロソフトのボケが!!
と言うところに落ち着いたよ
146デフォルトの名無しさん (ブーイモ MMa9-q0SB)
2021/04/08(木) 17:10:39.89ID:OX80XKzVM うろ覚えで申し訳ないんだけど、引数をByVal TestAry() As Longとかにすれば値渡し出来なかったっけ?
147デフォルトの名無しさん (ワッチョイ 234f-bYzF)
2021/04/08(木) 17:27:48.87ID:6DaO6dJm0148デフォルトの名無しさん (ワッチョイ 8564-tABC)
2021/04/08(木) 17:47:34.27ID:vZ3ddDF70 質問場所間違ってたら言ってください
iPhone用Excelで仕事の日報を書いてるのですが
時間を書き込んで→を押して数字を書き込むと
前のセルに書き込んだ数字
例えば8:00と書き込んで→を、次に16:00と記入しようと1を押すと8:00:001ってなってしまいます
これってならなくする方法ありますか?
iPhone用Excelで仕事の日報を書いてるのですが
時間を書き込んで→を押して数字を書き込むと
前のセルに書き込んだ数字
例えば8:00と書き込んで→を、次に16:00と記入しようと1を押すと8:00:001ってなってしまいます
これってならなくする方法ありますか?
149デフォルトの名無しさん (ワッチョイ 558e-tazQ)
2021/04/08(木) 18:07:25.00ID:BiHFumMw0 >>148
死ね
死ね
150デフォルトの名無しさん (ワッチョイ 234f-bYzF)
2021/04/08(木) 18:07:51.70ID:6DaO6dJm0 >>148
iPhoneは持ってるんだけどPC側しか365のアカウント持ってないんだ。ごめんね。
だけどググってみたら書式設定は出来るみたいだから数字にしたいセルの部分をそう書式設定すればいいんじゃないかな?
あと、一応EXCEL関連のスレはここに有ったけど
Excel友の会
https://egg.5ch.net/test/read.cgi/software/1223040168/
何か過疎ってるどころか最後の書き込みが去年の10月だから機能していないね。ここのスレでEXCELのこと聞くのは
ここのスレの住人がみんなOKすれば大丈夫だと思うけど
今まで随分色んなことあったから難しいかも知れないよ。
iPhoneは持ってるんだけどPC側しか365のアカウント持ってないんだ。ごめんね。
だけどググってみたら書式設定は出来るみたいだから数字にしたいセルの部分をそう書式設定すればいいんじゃないかな?
あと、一応EXCEL関連のスレはここに有ったけど
Excel友の会
https://egg.5ch.net/test/read.cgi/software/1223040168/
何か過疎ってるどころか最後の書き込みが去年の10月だから機能していないね。ここのスレでEXCELのこと聞くのは
ここのスレの住人がみんなOKすれば大丈夫だと思うけど
今まで随分色んなことあったから難しいかも知れないよ。
151デフォルトの名無しさん (ワッチョイ 4bda-7Bir)
2021/04/08(木) 19:22:03.89ID:wZLPNhcm0 こんなマクロの使い方もあるようで。
https://anond.hatelabo.jp/20210408000218
https://anond.hatelabo.jp/20210408000218
152デフォルトの名無しさん (ワントンキン MMeb-vnSj)
2021/04/08(木) 20:16:35.28ID:JmFnD0edM 要素数の限界ってどれくらいなの?
多次元配列で一次元あたり数千とかにしたらメモリ不足のエラーになった
多次元配列で一次元あたり数千とかにしたらメモリ不足のエラーになった
153デフォルトの名無しさん (ワッチョイ 0d10-9EPs)
2021/04/08(木) 20:37:06.14ID:eomKGQCU0 多次元はめっちゃメモリ食うからなるべくやるなと言われている
154デフォルトの名無しさん (ワッチョイ 2368-8vo5)
2021/04/08(木) 22:20:43.27ID:xay8Megr0 タスクマネージャでも眺めながら色々試してみては
物理メモリだけじゃないだろうけど、なんぼか目安にはなるだろう
物理メモリだけじゃないだろうけど、なんぼか目安にはなるだろう
155デフォルトの名無しさん (JP 0H79-0pr0)
2021/04/08(木) 23:36:50.07ID:zGFXp+zdH 64bit版なら配列変数1個あたり4GBまで
32bit版は2GBまで
つまりデータの型によって要素数の上限は違う
32bit版は2GBまで
つまりデータの型によって要素数の上限は違う
156デフォルトの名無しさん (ワッチョイ 9b4f-RQse)
2021/04/09(金) 00:36:31.60ID:J+L5UjPE0157デフォルトの名無しさん (ワッチョイ e24f-9aNE)
2021/04/09(金) 17:10:54.57ID:v0s3XxNT0 >>156
そうだね
あくまで俺の経験則だけど
2次元から3次元にしたとき何でも一挙に難しくなる気がする
元々簡単な作りのものしか扱わないならいいけど
VBAではないけど以前東大生が3次元で配列の制御を行うロジックを作って
自分でもよく分からなくなってしまったというのを見たことがあるし
ゲーム作るときも画面表示するだけで
三角関数はもとより行列やアフィン変換とか
理解してないとまともに出来ない
メモリ食うのも理由のひとつかも知れないけど
3次元には出来れば手を出さない方がいいと思う
そうだね
あくまで俺の経験則だけど
2次元から3次元にしたとき何でも一挙に難しくなる気がする
元々簡単な作りのものしか扱わないならいいけど
VBAではないけど以前東大生が3次元で配列の制御を行うロジックを作って
自分でもよく分からなくなってしまったというのを見たことがあるし
ゲーム作るときも画面表示するだけで
三角関数はもとより行列やアフィン変換とか
理解してないとまともに出来ない
メモリ食うのも理由のひとつかも知れないけど
3次元には出来れば手を出さない方がいいと思う
158デフォルトの名無しさん (ワントンキン MMfe-RQse)
2021/04/09(金) 19:26:47.90ID:o5ukQupNM >>157
ちなみに今回使おうとしたのは3次元配列なんだけど、3次元配列にした理由は同じような2次元配列に順番にアクセスしたかったから
こういう場合は2次元配列を複数用意すればいいのかな?
3次元配列にした方がスマートに記述できると思ったんだけど
ちなみに今回使おうとしたのは3次元配列なんだけど、3次元配列にした理由は同じような2次元配列に順番にアクセスしたかったから
こういう場合は2次元配列を複数用意すればいいのかな?
3次元配列にした方がスマートに記述できると思ったんだけど
159デフォルトの名無しさん (ワッチョイ 6268-/CMm)
2021/04/09(金) 19:41:20.17ID:H0DC02Cp0 行、列、シートで、3次元
配列で重くなるならセルに入れてしまうという手も
配列で重くなるならセルに入れてしまうという手も
160デフォルトの名無しさん (ワッチョイ e24f-9aNE)
2021/04/09(金) 21:04:50.47ID:v0s3XxNT0 >>159
シートを余計に食うけど場合によってはそれもひとつの有効手段だよね。
あまり見せたくなければVerryHiddenとかにしてしまえばいい訳だし。
>>158
使い処によると思うよ。使い方が単純でスピードが速い方がいいならそれでいいと思う。
ただ、これはあくまで「俺が」なんだけど実はあまり配列が好きじゃないんだ。
だからと言うわけでもないんだけどある程度大きなプログラムを組むときは
配列を使うこともあるにはあるけど、2次元配列の代わりにプロパティだけのエンティティクラス作って
それをコレクションやディクショナリに詰め込んで使ったり、
レコードセットを使ったりすることもあるし、
3次元では上記したような仕組みのものやそういった仕組みを持つクラスを作って、
それをまたコレクションやディクショナリにいれたりするように作ったりとか。
何でこんなまどろっこしいことするのかと言えば、要素と言うか項目やレコードの追加や
データ抽出が楽なんだよね。
シート足していいと言うなら先程の>>159の人の案も有りだと思う。
削除系は使えないけどシートにはその気になればSQLが投げられるから
抽出や計算、変換、加工とかする必要があるならかなり楽に作れることもあるからね。
シートを余計に食うけど場合によってはそれもひとつの有効手段だよね。
あまり見せたくなければVerryHiddenとかにしてしまえばいい訳だし。
>>158
使い処によると思うよ。使い方が単純でスピードが速い方がいいならそれでいいと思う。
ただ、これはあくまで「俺が」なんだけど実はあまり配列が好きじゃないんだ。
だからと言うわけでもないんだけどある程度大きなプログラムを組むときは
配列を使うこともあるにはあるけど、2次元配列の代わりにプロパティだけのエンティティクラス作って
それをコレクションやディクショナリに詰め込んで使ったり、
レコードセットを使ったりすることもあるし、
3次元では上記したような仕組みのものやそういった仕組みを持つクラスを作って、
それをまたコレクションやディクショナリにいれたりするように作ったりとか。
何でこんなまどろっこしいことするのかと言えば、要素と言うか項目やレコードの追加や
データ抽出が楽なんだよね。
シート足していいと言うなら先程の>>159の人の案も有りだと思う。
削除系は使えないけどシートにはその気になればSQLが投げられるから
抽出や計算、変換、加工とかする必要があるならかなり楽に作れることもあるからね。
161デフォルトの名無しさん (ワッチョイ 6268-/CMm)
2021/04/09(金) 21:29:44.17ID:H0DC02Cp0 三次元配列は単純に頭がしんどい
三次元空間の様にそれぞれの次元が同じ重みを持っているなら仕方ないけど、
それ意外なら行列の二次元+シート一次元、のように分けたほうがスッキリすると思う
三次元空間の様にそれぞれの次元が同じ重みを持っているなら仕方ないけど、
それ意外なら行列の二次元+シート一次元、のように分けたほうがスッキリすると思う
162デフォルトの名無しさん (アウアウウー Sabb-siCT)
2021/04/09(金) 21:34:45.69ID:VGCoQhdKa 省略したら値渡しでしよ
再帰かけるときには値渡しにしないと、いろいろ都合がある
再帰かけるときには値渡しにしないと、いろいろ都合がある
163デフォルトの名無しさん (アウアウウー Sabb-siCT)
2021/04/09(金) 21:37:45.95ID:VGCoQhdKa >>161
賛成、エクセルのシート使うよね
賛成、エクセルのシート使うよね
164デフォルトの名無しさん (ワッチョイ e24f-9aNE)
2021/04/09(金) 21:50:51.12ID:v0s3XxNT0 >>162
これな
実はVB.Netの場合は省略するとByVal(値渡し)で
旧VB6やVBAの場合は省略するとByRef(参照渡し)で
両方やってる人はよく間違えるんだよね。
再起の場合は確かにどれを反映させてどれを反映させないか結構大事になるけど、
まぁ基本デフォルト使わないで明示的に書くだろうからあまり気にしなくてもいいかもね。
これな
実はVB.Netの場合は省略するとByVal(値渡し)で
旧VB6やVBAの場合は省略するとByRef(参照渡し)で
両方やってる人はよく間違えるんだよね。
再起の場合は確かにどれを反映させてどれを反映させないか結構大事になるけど、
まぁ基本デフォルト使わないで明示的に書くだろうからあまり気にしなくてもいいかもね。
165デフォルトの名無しさん (ワッチョイ 9b4f-RQse)
2021/04/10(土) 00:28:07.23ID:xAikY8XJ0 みんなありがとう
>>160
VBAは基本の参考書を読んで一通り分かったつもり
でもクラスは上級者すぎて分からないや
一応自作のオブジェクトという理解でいる
色々案を考えてくれてありがとう、もう少し勉強してからそのあたりも試してみる
>>160
VBAは基本の参考書を読んで一通り分かったつもり
でもクラスは上級者すぎて分からないや
一応自作のオブジェクトという理解でいる
色々案を考えてくれてありがとう、もう少し勉強してからそのあたりも試してみる
166デフォルトの名無しさん (アウアウウー Sabb-siCT)
2021/04/10(土) 06:57:57.98ID:+Fv9eRvVa シートに書き出すととピポットにできるから
ピポットなら何重にも次元が増やせるし
処理もはやい
ピポットとvbaを組み合わせると、
けっこうはやい
ピポットなら何重にも次元が増やせるし
処理もはやい
ピポットとvbaを組み合わせると、
けっこうはやい
167デフォルトの名無しさん (ワッチョイ e24f-9aNE)
2021/04/10(土) 08:02:59.36ID:GLiDRYw80 >>165
頑張って
クラスはObject指向言語だと必須だけどVBAでは無理して知ってる必要もないから気が向いたときに覚えればいいと思うよ
とは言ってもクラス自体はそんなに難しいものじゃないんだけどね。よく、ひとつの纏まった機能を他のモジュールに書くよね。
あれを標準モジュールの変わりにクラスモジュールに書けばクラスの出来上がり。
後は他のオブジェクト使うときと同じようにNewして変数に入れて、変数名.メソッド名、変数名.プロパティ名とか書けば使えるよ。
どっちかっていうと考え方と使いどころに慣れるまでがちょっと大変かもね。
それ以上の多態性とかデザインパターンとかの知識を身につけるころには他の言語やってるだろうから
今そんなに深く考えることもないと思うよ。
頑張って
クラスはObject指向言語だと必須だけどVBAでは無理して知ってる必要もないから気が向いたときに覚えればいいと思うよ
とは言ってもクラス自体はそんなに難しいものじゃないんだけどね。よく、ひとつの纏まった機能を他のモジュールに書くよね。
あれを標準モジュールの変わりにクラスモジュールに書けばクラスの出来上がり。
後は他のオブジェクト使うときと同じようにNewして変数に入れて、変数名.メソッド名、変数名.プロパティ名とか書けば使えるよ。
どっちかっていうと考え方と使いどころに慣れるまでがちょっと大変かもね。
それ以上の多態性とかデザインパターンとかの知識を身につけるころには他の言語やってるだろうから
今そんなに深く考えることもないと思うよ。
168デフォルトの名無しさん (テテンテンテン MM8e-VoLZ)
2021/04/10(土) 09:30:59.12ID:ASUPMck3M169デフォルトの名無しさん (アウアウウー Sabb-siCT)
2021/04/10(土) 10:08:24.05ID:+Fv9eRvVa エクセルというクラスを使いこなせば
ビジネスなら十分
エクセル以上のobject作るのは無理だから
なんつてセカンドオニオンでした
ビジネスなら十分
エクセル以上のobject作るのは無理だから
なんつてセカンドオニオンでした
170デフォルトの名無しさん (スププ Sd02-yrn4)
2021/04/10(土) 15:51:59.07ID:duTza7EGd 自分もクラスで挫折して今はユーザー定義型で幸せです
171デフォルトの名無しさん (ササクッテロラ Sp5f-9aNE)
2021/04/10(土) 16:02:42.86ID:4ha6UGTxp 自分もユーザー定義にした途端お金が入って彼女が出来ました。今ではとっても幸せです。
172デフォルトの名無しさん (ワッチョイ 7fda-9Ojr)
2021/04/10(土) 17:05:30.13ID:eY7Q/L5k0 そうかい
173デフォルトの名無しさん (ワッチョイ cb5f-VxJ9)
2021/04/10(土) 20:22:47.19ID:mgDf3XRg0 >>170
プロパティとかコンストラクタとかあとは鯛焼きの型とかいきなり説明しだすから分かりにくいんだよな
プロパティとかコンストラクタとかあとは鯛焼きの型とかいきなり説明しだすから分かりにくいんだよな
174デフォルトの名無しさん (ワッチョイ cb5f-VxJ9)
2021/04/10(土) 20:23:09.87ID:mgDf3XRg0 最初はクラス内の変数と関数だけでプロシージャ内のコードがこれだけ簡潔書けるようになります程度でいいのに
175デフォルトの名無しさん (ワッチョイ 6268-/CMm)
2021/04/10(土) 20:31:08.56ID:u4vdYafN0 EXCELvbaで、クラスってどういう時に使うのでしょうか
ゲームのように細かいオブジェクトが多数ある状態なら分かりますが、
表の状態になったデータだと、今ひとつピント来ないです
社員classや顧客classを作るのでしょうか
ゲームのように細かいオブジェクトが多数ある状態なら分かりますが、
表の状態になったデータだと、今ひとつピント来ないです
社員classや顧客classを作るのでしょうか
176デフォルトの名無しさん (ブーイモ MM3e-8zEc)
2021/04/10(土) 20:42:21.31ID:r9QO1mE4M 無理に使う必要は無い。
「使わなくては!」と閃く状況が来るときまで。
「使わなくては!」と閃く状況が来るときまで。
177デフォルトの名無しさん (ワッチョイ d7da-mgCR)
2021/04/10(土) 21:10:26.00ID:2jN52YXT0178デフォルトの名無しさん (ワッチョイ e24f-9aNE)
2021/04/10(土) 21:22:16.81ID:GLiDRYw80 >>175
どう使うかを決めるのも自分。
だからクラスそのものより
考え方や使いどころに慣れるまで
そっちの方が大変だって言ったんだよ。
まぁ表であればあくまで俺であれば、
項目をプロパティにして
1レコードをクラスにして、
それをコレクションやディクショナリに
登録して使うよ。前記したけどね。
どう使うかを決めるのも自分。
だからクラスそのものより
考え方や使いどころに慣れるまで
そっちの方が大変だって言ったんだよ。
まぁ表であればあくまで俺であれば、
項目をプロパティにして
1レコードをクラスにして、
それをコレクションやディクショナリに
登録して使うよ。前記したけどね。
179デフォルトの名無しさん (スププ Sd02-yrn4)
2021/04/10(土) 22:23:34.34ID:duTza7EGd オレ知ってる!
クラスってニューして使うんだよな!
クラスってニューして使うんだよな!
180デフォルトの名無しさん (ワッチョイ 0663-uh6b)
2021/04/10(土) 23:22:47.33ID:kj/emQZa0 エクセルでガントチャートを作りたく極力簡単な方法を探しています。
(手順が少なく、エクセル苦手でも理解しやすい)
自力で探したところ
ttps://excel-master.net/cells-worksheets-control/gantt-chart-3/
の「条件付き書式でガントチャートをつくる」が一番簡単な気がしましたが
より簡単な方法があったらご教授いただきたく。
windows板で尋ねようかと思いましたがエクセル専用スレが無いため
詳しい人が多そうなこのスレにお邪魔しました。
(手順が少なく、エクセル苦手でも理解しやすい)
自力で探したところ
ttps://excel-master.net/cells-worksheets-control/gantt-chart-3/
の「条件付き書式でガントチャートをつくる」が一番簡単な気がしましたが
より簡単な方法があったらご教授いただきたく。
windows板で尋ねようかと思いましたがエクセル専用スレが無いため
詳しい人が多そうなこのスレにお邪魔しました。
181デフォルトの名無しさん (アウアウウー Sabb-siCT)
2021/04/10(土) 23:41:30.33ID:KgXo78Rva 要望は何回もやり直したほうがよいよ
さいしょは相手も自分もよくわかってないから
Ver3ぐらいでようやく完成する
さいしょは相手も自分もよくわかってないから
Ver3ぐらいでようやく完成する
182デフォルトの名無しさん (ワッチョイ e24f-9aNE)
2021/04/11(日) 00:00:57.05ID:0+LhiyyI0 >>180
あ、これ、俺は苦手だわ
WBS作ろうとするとどうしても
簡単に作ることより分かり易くする方に
力入れちゃうから多分そのリンク先に
載ってることよりややこしい数式にしてしまう
ま、WBSなんて基本、予定線と実績線、
あと遅れそうになった時のワーニング色と
遅れた時のアラート色、
あと遅延リカバリ用の枠付けとくくらいだから
大したもんじゃないからまぁ頑張って。
こういうの作るときにもっと大事なのは
見積もりとそれに対するする人員と期間の
配分だから、そっちも任されているなら
そっちに作業の80%くらい割り振って
考えた方がいいよ。
あ、これ、俺は苦手だわ
WBS作ろうとするとどうしても
簡単に作ることより分かり易くする方に
力入れちゃうから多分そのリンク先に
載ってることよりややこしい数式にしてしまう
ま、WBSなんて基本、予定線と実績線、
あと遅れそうになった時のワーニング色と
遅れた時のアラート色、
あと遅延リカバリ用の枠付けとくくらいだから
大したもんじゃないからまぁ頑張って。
こういうの作るときにもっと大事なのは
見積もりとそれに対するする人員と期間の
配分だから、そっちも任されているなら
そっちに作業の80%くらい割り振って
考えた方がいいよ。
183デフォルトの名無しさん (スッップ Sd02-N28a)
2021/04/11(日) 02:17:20.23ID:x6o0gjqGd 馬鹿ばっかのスレ
184デフォルトの名無しさん (アウアウウー Sabb-siCT)
2021/04/11(日) 02:27:18.88ID:C7VIYXjZa ガントチャートだとあんまり工程管理にならないんだよ
やってみるとわかるけど
8割がた遅延する、というか遅れてないと進捗がわからないだよ
1、そもそもスタートしていなかった?
これがいちばんおおい
2、深刻で致命的なもんだいが、見つかるとはいちばん最後
だから
やってみるとわかるけど
8割がた遅延する、というか遅れてないと進捗がわからないだよ
1、そもそもスタートしていなかった?
これがいちばんおおい
2、深刻で致命的なもんだいが、見つかるとはいちばん最後
だから
185デフォルトの名無しさん (テテンテンテン MM8e-VoLZ)
2021/04/11(日) 10:19:59.88ID:Gib6KHmfM186デフォルトの名無しさん (ササクッテロ Sp5f-9aNE)
2021/04/11(日) 11:13:40.17ID:udnt6yH0p 質問です
今後このスレ
こう言ったEXCELのとか
旧VB6とか許容すんの?
古参なら今までどういったことが
有ったか覚えていると思うけど
今後このスレ
こう言ったEXCELのとか
旧VB6とか許容すんの?
古参なら今までどういったことが
有ったか覚えていると思うけど
187デフォルトの名無しさん (テテンテンテン MM8e-qfGw)
2021/04/11(日) 11:43:22.55ID:TwIBijR2M 質問者はワークシートでの作り方はある程度想像がつくけどVBAの知識がある人ならよりスマートな方法を知っているかもしれないと考えてここで聞いたんだろうし、
それに対してワークシートの機能でできることはVBA使うよりワークシートの機能でやった方がいいってのは極めて妥当で健全な回答だろう
そんなことでいちいちスレ違い警察さんが出動しなくていいよ
それに対してワークシートの機能でできることはVBA使うよりワークシートの機能でやった方がいいってのは極めて妥当で健全な回答だろう
そんなことでいちいちスレ違い警察さんが出動しなくていいよ
188デフォルトの名無しさん (ワッチョイ e24f-9aNE)
2021/04/11(日) 12:04:02.09ID:0+LhiyyI0189デフォルトの名無しさん (ワッチョイ ebcd-AcCi)
2021/04/11(日) 12:41:42.70ID:WBicdlML0 excelのOnTime関数をPowerPointで使うこと出来ないよね?同じ機能を持った関数ってある?
190デフォルトの名無しさん (ワッチョイ e24f-9aNE)
2021/04/11(日) 12:55:23.83ID:0+LhiyyI0191デフォルトの名無しさん (ワッチョイ cb5f-SvS6)
2021/04/11(日) 13:01:24.60ID:J2w1eWX20 Excelから呼び出せないのか
起動中のソフトを検索するワード関数をExcelから呼び出してるの見かけたことあるけど
起動中のソフトを検索するワード関数をExcelから呼び出してるの見かけたことあるけど
192デフォルトの名無しさん (ワッチョイ ebcd-AcCi)
2021/04/11(日) 14:13:05.18ID:WBicdlML0193デフォルトの名無しさん (ワッチョイ 6268-/CMm)
2021/04/11(日) 15:30:39.63ID:VuRQUus/0 vb.netでdllとか作った方が早いような
194デフォルトの名無しさん (ワッチョイ 2310-BQFA)
2021/04/11(日) 20:16:20.16ID:MoadxaFG0195デフォルトの名無しさん (ワッチョイ 6f2c-uh6b)
2021/04/11(日) 21:10:22.11ID:LXnW0jT40 Python, Julia, Ruby などで使う、Jupyter Lab に、ガントチャートは無いのか?
196デフォルトの名無しさん (ワッチョイ 6268-/CMm)
2021/04/11(日) 21:40:30.24ID:VuRQUus/0 >>196
あることはある
https://cafe-mickey.com/python/plotly-tutorial-6/
でも結局死ぬほどカスタマイズすることになるから、EXCELで作るのが一番マシ
あることはある
https://cafe-mickey.com/python/plotly-tutorial-6/
でも結局死ぬほどカスタマイズすることになるから、EXCELで作るのが一番マシ
197デフォルトの名無しさん (ワッチョイ 7fda-9Ojr)
2021/04/11(日) 23:13:09.15ID:rV+Er0Dj0 業務とはかけ離れた腕自慢スレになりつつあるなここは
198デフォルトの名無しさん (ワッチョイ 0663-uh6b)
2021/04/11(日) 23:26:48.43ID:ZRspFCij0199デフォルトの名無しさん (JP 0H93-CoCA)
2021/04/11(日) 23:52:08.05ID:Omw3/P/WH >>197
昔から、質問の答えが出た後に別の方法を書き込む競争はやってた
昔から、質問の答えが出た後に別の方法を書き込む競争はやってた
200デフォルトの名無しさん (ワッチョイ 068e-N28a)
2021/04/12(月) 00:09:38.61ID:zgwaoc/v0 いつものあいつだな
201デフォルトの名無しさん (ワントンキン MM92-YQ+d)
2021/04/12(月) 02:49:52.91ID:Bvz5U6oCM まだ引っ掛かる馬鹿がいるのか
202デフォルトの名無しさん (ワッチョイ 7fda-9Ojr)
2021/04/12(月) 09:23:22.30ID:H+Y94TUB0 回答者さん同士で競争とか知恵袋と同じじゃんか
無駄にスレの無駄遣い
無駄にスレの無駄遣い
203デフォルトの名無しさん (ワッチョイ c6da-CoCA)
2021/04/12(月) 10:17:02.71ID:5VvoR6W20 無駄な書き込みを無駄にスレに書き込んでスレを無駄に使うことはスレの無駄遣いだと書き込むことはスレの無駄遣いかもしれない
204デフォルトの名無しさん (アウアウウー Sabb-siCT)
2021/04/12(月) 10:35:19.07ID:0gH2bD5Aa 無駄な努力が、むくわれるのさ
205デフォルトの名無しさん (アウアウウー Sabb-siCT)
2021/04/12(月) 10:49:33.17ID:0gH2bD5Aa VLookupをつかったのは無駄な努力だったな
やめときゃよかった
やめときゃよかった
206デフォルトの名無しさん (アウアウウー Sabb-siCT)
2021/04/12(月) 10:56:04.87ID:0gH2bD5Aa これをマクロでどうにかなりませんか
そういってわたされたのがVLookupが山のように貼り付けられた
エクセルシートだった
うまくと動くけと突然とまるw
けっきょくforループの検索に代えた
とここまで書いておもいだしたが
去年、メンタル悪化で退職した同僚がいたけど
のこしていってのはやはりVLookupの山だったな
動かないVLookupで退職するまえに本スレにご相談ください
そういってわたされたのがVLookupが山のように貼り付けられた
エクセルシートだった
うまくと動くけと突然とまるw
けっきょくforループの検索に代えた
とここまで書いておもいだしたが
去年、メンタル悪化で退職した同僚がいたけど
のこしていってのはやはりVLookupの山だったな
動かないVLookupで退職するまえに本スレにご相談ください
207デフォルトの名無しさん (ブーイモ MM93-m7DA)
2021/04/12(月) 12:12:04.06ID:8dcLaG4EM Excel初心者はVLookupしか知らないから
何でもこれでやろうとして自爆する傾向があるね
何でもこれでやろうとして自爆する傾向があるね
208デフォルトの名無しさん (ワッチョイ 7fda-9Ojr)
2021/04/12(月) 12:24:31.30ID:H+Y94TUB0 そのVlook関数はマクロ経由なのかが気になる
209デフォルトの名無しさん (JP 0H93-CoCA)
2021/04/12(月) 12:42:14.50ID:HPbAbv3kH 池の女神は言いました
あなたが落としたのはVLOOKUPですか、HLOOKUPですか
いいえ私が落としたのはXLOOKUPです
あなたが落としたのはVLOOKUPですか、HLOOKUPですか
いいえ私が落としたのはXLOOKUPです
210デフォルトの名無しさん (ワッチョイ e24f-9aNE)
2021/04/12(月) 13:02:43.22ID:A3OoULtt0 質問です
>>209の言う
VlookupとHlookupの頭文字は
バーティカル(垂直)とホライズン(水平)
なのは分かるんですがXlookupの頭文字の
Xってなんですか?
EXCELの質問でスレ違いなのは
重々承知していますが
このスレにいる方々の知識の豊富さに縋らせてください
考えると夜も眠れない有様です
>>209の言う
VlookupとHlookupの頭文字は
バーティカル(垂直)とホライズン(水平)
なのは分かるんですがXlookupの頭文字の
Xってなんですか?
EXCELの質問でスレ違いなのは
重々承知していますが
このスレにいる方々の知識の豊富さに縋らせてください
考えると夜も眠れない有様です
211デフォルトの名無しさん (アウアウウー Sabb-ZQ1a)
2021/04/12(月) 13:25:12.45ID:QkakYyyta >>210
クロス
クロス
212デフォルトの名無しさん (ワッチョイ e24f-9aNE)
2021/04/12(月) 13:30:51.45ID:A3OoULtt0213デフォルトの名無しさん (ワッチョイ 6242-KVJ7)
2021/04/12(月) 13:34:07.13ID:X9TSjYQR0 XmasのX
214デフォルトの名無しさん (ササクッテロラ Sp5f-ZNvo)
2021/04/12(月) 13:36:54.52ID:MyLZJXYdp 向こうではCrossとかChristmasをXで省略するから、だと思う
215デフォルトの名無しさん (ワッチョイ e24f-9aNE)
2021/04/12(月) 13:41:07.52ID:A3OoULtt0216デフォルトの名無しさん (ワッチョイ 238e-YR5A)
2021/04/12(月) 15:02:08.77ID:3rdXwFWw0 >>215
死ねよ
死ねよ
217デフォルトの名無しさん (ワッチョイ 7fda-9Ojr)
2021/04/12(月) 17:28:11.89ID:H+Y94TUB0 バツルックアップじゃないの??
事務のオバチャンにそう聞いたけど
事務のオバチャンにそう聞いたけど
218デフォルトの名無しさん (アウアウウー Sabb-siCT)
2021/04/12(月) 19:56:57.26ID:UqVxKohHa とんこつととんかつの違いはなんですか
そういう質問をうけたときがあったなぁ
そういう質問をうけたときがあったなぁ
219デフォルトの名無しさん (JP 0H93-CoCA)
2021/04/12(月) 20:02:02.68ID:HPbAbv3kH とんかつ
とんかち
とんかち
220デフォルトの名無しさん (ワッチョイ df01-zUaT)
2021/04/12(月) 22:40:18.25ID:6cC4Cv/z0 マジレスするとExtraやExtendのX
221デフォルトの名無しさん (アウアウウー Sabb-siCT)
2021/04/13(火) 12:25:16.60ID:XNPY+hAHa ガントチャートの欠点は
遅れの検出がおそいだよね
期限が過ぎないと遅れることがわからない
これでは手遅れですよ
遅れの検出がおそいだよね
期限が過ぎないと遅れることがわからない
これでは手遅れですよ
222デフォルトの名無しさん (ワッチョイ e24f-9aNE)
2021/04/13(火) 12:40:10.17ID:5GJi7nDK0 >>221
あ、そうなんだ
EXCELの数式だったら予定線より実績線が
二日くらい前になったらワーニングで黄色、
予定線以降になったら赤とかにしとけば
ワーニングに入った時点でリカバリ案とか
会議で話し合えるのにね。
あ、そうなんだ
EXCELの数式だったら予定線より実績線が
二日くらい前になったらワーニングで黄色、
予定線以降になったら赤とかにしとけば
ワーニングに入った時点でリカバリ案とか
会議で話し合えるのにね。
223デフォルトの名無しさん (ラクッペペ MM8e-tPyg)
2021/04/13(火) 12:54:32.74ID:mzxN/X4qM 期限過ぎる前に進捗率がヤバくなればリスケで仕切り直し
いつまで経っても期限が過ぎることは無い
いつまで経っても期限が過ぎることは無い
224デフォルトの名無しさん (ワッチョイ e24f-9aNE)
2021/04/13(火) 13:24:50.99ID:5GJi7nDK0 >>223
本当にありそうで怖いわ!
本当にありそうで怖いわ!
225デフォルトの名無しさん (アウアウウー Sabb-siCT)
2021/04/13(火) 17:28:26.59ID:XNPY+hAHa 開始日でだいたいわかる
おおくのばあいはまともにスタート出来てないからw
人がいない、資料がそろってない、仕様がきまってない
だも
スタートできなきゃゴールするわけがない
おおくのばあいはまともにスタート出来てないからw
人がいない、資料がそろってない、仕様がきまってない
だも
スタートできなきゃゴールするわけがない
226デフォルトの名無しさん (ワッチョイ e24f-9aNE)
2021/04/13(火) 20:57:49.87ID:5GJi7nDK0 >>225
開発あるあるだなw
そうか、確かにVBAだと後ろが伸びるだけになるかも知れないね。
他のある程度大きいシステムになると
・客先から上がって来ない要件定義
・客先だから強く言えないチームのリーダー
・差し迫る納期
・焦りが出てきてイラつく俺ら。それを宥めるリーダー
この辺からが違うところかな
・システム間の連携や他システムとの連携のため伸ばせない納期
・更に焦る俺ら。宥めきれなくなるリーダー
・上がって来る要件定義、血眼で設計書を作る俺ら
・時間がなくて客先との対面レビューのはずが回覧レビューになる設計書
・PGしながら単体テストケース作りながら単位テストしながらエビデンス取る俺ら
・超える納期、無くなる休日、伸びまくる勤務時間、倒れる仲間
・覆る要件定義、設計種ミス発覚、他の嶋から助っ人入るも焼石に水、発狂する助っ人
・何とかSTまで終了。飛ばされるリーダー、バグだらけの成果物、昇天する俺ら
最悪こんな感じかな。
開発あるあるだなw
そうか、確かにVBAだと後ろが伸びるだけになるかも知れないね。
他のある程度大きいシステムになると
・客先から上がって来ない要件定義
・客先だから強く言えないチームのリーダー
・差し迫る納期
・焦りが出てきてイラつく俺ら。それを宥めるリーダー
この辺からが違うところかな
・システム間の連携や他システムとの連携のため伸ばせない納期
・更に焦る俺ら。宥めきれなくなるリーダー
・上がって来る要件定義、血眼で設計書を作る俺ら
・時間がなくて客先との対面レビューのはずが回覧レビューになる設計書
・PGしながら単体テストケース作りながら単位テストしながらエビデンス取る俺ら
・超える納期、無くなる休日、伸びまくる勤務時間、倒れる仲間
・覆る要件定義、設計種ミス発覚、他の嶋から助っ人入るも焼石に水、発狂する助っ人
・何とかSTまで終了。飛ばされるリーダー、バグだらけの成果物、昇天する俺ら
最悪こんな感じかな。
227デフォルトの名無しさん (ブーイモ MM93-uTt7)
2021/04/13(火) 21:11:48.26ID:QqfAiqTvM >>225
開発あるあるだなw
そうか、確かにVBAだと後ろが伸びるだけになるかも知れないね。
他のある程度大きいシステムになると
・客先から上がって来ない要件定義
・客先だから強く言えないチームのリーダー
・差し迫る納期
・焦りが出てきてイラつく俺ら。それを宥めるリーダー
この辺からが違うところかな
・システム間の連携や他システムとの連携のため伸ばせない納期
・更に焦る俺ら。宥めきれなくなるリーダー
・上がって来る要件定義、血眼で設計書を作る俺ら
・時間がなくて客先との対面レビューのはずが回覧レビューになる設計書
・PGしながら単体テストケース作りながら単位テストしながらエビデンス取る俺ら
・超える納期、無くなる休日、伸びまくる勤務時間、倒れる仲間
・覆る要件定義、設計種ミス発覚、他の嶋から助っ人入るも焼石に水、発狂する助っ人
・何とかSTまで終了。飛ばされるリーダー、ハゲだらけの社員、昇天する俺ら
最悪こんな感じかな。
開発あるあるだなw
そうか、確かにVBAだと後ろが伸びるだけになるかも知れないね。
他のある程度大きいシステムになると
・客先から上がって来ない要件定義
・客先だから強く言えないチームのリーダー
・差し迫る納期
・焦りが出てきてイラつく俺ら。それを宥めるリーダー
この辺からが違うところかな
・システム間の連携や他システムとの連携のため伸ばせない納期
・更に焦る俺ら。宥めきれなくなるリーダー
・上がって来る要件定義、血眼で設計書を作る俺ら
・時間がなくて客先との対面レビューのはずが回覧レビューになる設計書
・PGしながら単体テストケース作りながら単位テストしながらエビデンス取る俺ら
・超える納期、無くなる休日、伸びまくる勤務時間、倒れる仲間
・覆る要件定義、設計種ミス発覚、他の嶋から助っ人入るも焼石に水、発狂する助っ人
・何とかSTまで終了。飛ばされるリーダー、ハゲだらけの社員、昇天する俺ら
最悪こんな感じかな。
228デフォルトの名無しさん (ワッチョイ e24f-9aNE)
2021/04/13(火) 21:15:01.18ID:5GJi7nDK0 うーん、何か接続がおかしいのかな
他のスレに誤爆になってこのスレでも2回載ってしまった
すまんこ
他のスレに誤爆になってこのスレでも2回載ってしまった
すまんこ
229デフォルトの名無しさん (ブーイモ MM93-uTt7)
2021/04/13(火) 21:34:03.40ID:QqfAiqTvM うーん、何か接続がおかしいのかな
他のスレに誤爆になってこのスレでも2回載ってしまった
おまんこ
他のスレに誤爆になってこのスレでも2回載ってしまった
おまんこ
230デフォルトの名無しさん (ワッチョイ e24f-9aNE)
2021/04/13(火) 21:38:41.78ID:5GJi7nDK0 >>229
おいw
おいw
231デフォルトの名無しさん (ワッチョイ 7fda-9Ojr)
2021/04/14(水) 07:51:01.50ID:EILUghab0 ウンコマクロ
232デフォルトの名無しさん (アウアウウー Sabb-siCT)
2021/04/14(水) 19:17:03.44ID:hXL/FQf4a まあ。そんなんだ
233デフォルトの名無しさん (ワッチョイ e24f-9aNE)
2021/04/14(水) 19:29:05.82ID:jCprHRHj0 EXCEL VBAは好きだし凄く肌に合ってると思うけど、案件単価がちょっとなぁ
234デフォルトの名無しさん (ブーイモ MM5b-8zEc)
2021/04/14(水) 19:47:31.92ID:kMGrei9fM EXCEL VBAが肌に合う様な奴が案件単価とか生意気。
235デフォルトの名無しさん (ワッチョイ 6268-/CMm)
2021/04/14(水) 20:39:37.17ID:E4KyUeCU0 一般事務が仕事中に覚える→結婚・退職→主婦の傍ら有り余る時間で糞みたいな単価で受注
まぁ、悪い事でもなんでもないんだけどね、うん
まぁ、悪い事でもなんでもないんだけどね、うん
236デフォルトの名無しさん (ワッチョイ 7b63-AglQ)
2021/04/14(水) 20:45:27.19ID:ijCB3EYv0 あたまが鉛のようにおもい
237デフォルトの名無しさん (ワッチョイ c6da-CoCA)
2021/04/14(水) 20:47:48.07ID:cTgQ8ZPt0 1時間で作れるような案件が高いわけない
238デフォルトの名無しさん (ワッチョイ 7b63-AglQ)
2021/04/14(水) 20:52:06.82ID:ijCB3EYv0 冷戦時代日本がロケットのことでロシアに教えをこうたとき
一言ジャイロに問題があるといって
100億ぐらいもって去っていったそうな
一言ジャイロに問題があるといって
100億ぐらいもって去っていったそうな
239デフォルトの名無しさん (ワッチョイ 43de-iqg9)
2021/04/14(水) 21:21:01.64ID:tTtaKpUk0 VBA Seleniumdriveで
driver.ExecuteScript ("XXXX")
でonclickをクリックするとモーダルコンテンツが表示されます。
コンテンツ内のXpathをクリックしてもボタンを押すことが出来ないんですが、
SendKeys "{TAB}", Trueで該当のボタンをクリックする以外に
要素を指定してクリックする方法ってありますか?
driver.ExecuteScript ("XXXX")
でonclickをクリックするとモーダルコンテンツが表示されます。
コンテンツ内のXpathをクリックしてもボタンを押すことが出来ないんですが、
SendKeys "{TAB}", Trueで該当のボタンをクリックする以外に
要素を指定してクリックする方法ってありますか?
240デフォルトの名無しさん (ワッチョイ 12bd-1WRr)
2021/04/14(水) 22:43:58.06ID:bsTwIiw80 下記「やりたいこと」のようにhtmlから抽出したいのですが、
下記「前提」があって、どうしたらいいのか分かりません。
なにか方法ありますでしょうか?
--- やりたいこと ---
下記htmlにおいて、"ヘッダ"のすぐ次に存在しているtableタグ内の項目1,2、要素1,2を取得したい
--- 前提 ---
@"ヘッダ"は特定できる
Atableは特定できない
・tableのidや要素から特定できない
・tableの数から特定できない(取得したいtableが何個目なのか分からない)
--- html例 ---
・・・
<h2>ヘッダ</h2>
<table>
<tr><th>項目1</th><th>項目2</th></tr>
<tr><td>要素1</td><td>要素2</td></tr>
</table>
・・・
--- プログラム例(Microsoft Internet Controls、Microsoft HTML Object Libraryは参照設定済み) ---
Dim objIE As New InternetExplorer
objIE.Navigate "http://***"
Do While objIE.Busy = True Or objIE.ReadyState <> READYSTATE_COMPLETE
DoEvents
Loop
For Each obj In objIE.Document.getElementsByTagName("h2")
If InStr(obj.innerText, "ヘッダ") > 0 Then ヘッダは見つけることができるが、この後どうしたらいいのか・・・
End If
Next obj
下記「前提」があって、どうしたらいいのか分かりません。
なにか方法ありますでしょうか?
--- やりたいこと ---
下記htmlにおいて、"ヘッダ"のすぐ次に存在しているtableタグ内の項目1,2、要素1,2を取得したい
--- 前提 ---
@"ヘッダ"は特定できる
Atableは特定できない
・tableのidや要素から特定できない
・tableの数から特定できない(取得したいtableが何個目なのか分からない)
--- html例 ---
・・・
<h2>ヘッダ</h2>
<table>
<tr><th>項目1</th><th>項目2</th></tr>
<tr><td>要素1</td><td>要素2</td></tr>
</table>
・・・
--- プログラム例(Microsoft Internet Controls、Microsoft HTML Object Libraryは参照設定済み) ---
Dim objIE As New InternetExplorer
objIE.Navigate "http://***"
Do While objIE.Busy = True Or objIE.ReadyState <> READYSTATE_COMPLETE
DoEvents
Loop
For Each obj In objIE.Document.getElementsByTagName("h2")
If InStr(obj.innerText, "ヘッダ") > 0 Then ヘッダは見つけることができるが、この後どうしたらいいのか・・・
End If
Next obj
241デフォルトの名無しさん (JP 0H93-CoCA)
2021/04/14(水) 23:08:27.54ID:mIFbuL/UH >>240
<HTML>タグか<BODY>タグで全体のソースを取り込んで、あとは文字列として処理
<HTML>タグか<BODY>タグで全体のソースを取り込んで、あとは文字列として処理
242デフォルトの名無しさん (アウアウエー Sa3a-Iz4t)
2021/04/15(木) 01:36:52.92ID:E+h/Uieza VBAでやる意味あんの?
243デフォルトの名無しさん (ワッチョイ 12bd-1WRr)
2021/04/15(木) 02:03:12.55ID:Un6DIa9Z0244デフォルトの名無しさん (ワッチョイ 6f2c-uh6b)
2021/04/15(木) 06:20:29.14ID:5JoH8OD60 >>240
jQuery なら、2重ループで、
<h2 id="id-1">ヘッダ</h2>
<table><tbody>
<tr><th>項目1</th><th>項目2</th></tr>
<tr><td>要素1</td><td>要素2</td></tr>
</tbody></table>
<table><tbody>
<tr><th>項目3</th><th>項目4</th></tr>
<tr><td>要素3</td><td>要素4</td></tr>
</tbody></table>
$( function ( ) {
let table = $( '#id-1' ).next( ); //次の兄弟要素
// table > tbody > tr を、1行ずつ処理する
$( table ).children( ).children( ).each( function ( index, row ) {
// 1列ずつ処理する
$( row ).children( ).each( function ( index_2, col ) {
console.log( `${ index }行 ${ index_2 }列`, col.textContent );
} );
} );
} );
出力
0行 0列 項目1
0行 1列 項目2
1行 0列 要素1
1行 1列 要素2
jQuery なら、2重ループで、
<h2 id="id-1">ヘッダ</h2>
<table><tbody>
<tr><th>項目1</th><th>項目2</th></tr>
<tr><td>要素1</td><td>要素2</td></tr>
</tbody></table>
<table><tbody>
<tr><th>項目3</th><th>項目4</th></tr>
<tr><td>要素3</td><td>要素4</td></tr>
</tbody></table>
$( function ( ) {
let table = $( '#id-1' ).next( ); //次の兄弟要素
// table > tbody > tr を、1行ずつ処理する
$( table ).children( ).children( ).each( function ( index, row ) {
// 1列ずつ処理する
$( row ).children( ).each( function ( index_2, col ) {
console.log( `${ index }行 ${ index_2 }列`, col.textContent );
} );
} );
} );
出力
0行 0列 項目1
0行 1列 項目2
1行 0列 要素1
1行 1列 要素2
245デフォルトの名無しさん (ラクッペペ MM8e-tPyg)
2021/04/15(木) 06:53:10.31ID:r2UxJQfIM >>244
VBAの構文に変換してくれ
VBAの構文に変換してくれ
246デフォルトの名無しさん (ワッチョイ e24f-9aNE)
2021/04/15(木) 11:25:51.10ID:c60l0/FJ0 >>244
VBAに対してHTMLの集約やメソッドチェーンが使える言語をぶつけてくるのは卑怯だと思うの
VBAに対してHTMLの集約やメソッドチェーンが使える言語をぶつけてくるのは卑怯だと思うの
247デフォルトの名無しさん (アウアウウー Sabb-siCT)
2021/04/15(木) 12:05:58.59ID:nvZZu+k0a スクリプトぐらいなら良くねの
248デフォルトの名無しさん (ワッチョイ e279-yk1z)
2021/04/15(木) 12:18:14.12ID:ivOr0/mk0249デフォルトの名無しさん (ワッチョイ c207-iqg9)
2021/04/15(木) 16:07:09.80ID:MUSbI6ab0 質問です。
今は下記のようなコードとvlookupを組み合わせて連続で請求書を印刷しています。
一つのジョブにまとめて印刷するにはどのようにしたらよいでしょうか?
Sub 連続印刷()
Dim i As Integer
Dim LastRow As Integer
Worksheets("請求書").Select
With Worksheets("データ")
For i = 3 To 5
Range("d1").Value = .Range("A" & i).Value
Range("n1").Value = .Range("A" & i + 1).Value
i = i + 1
ActiveSheet.PrintOut
Next
End With
End Sub
今は下記のようなコードとvlookupを組み合わせて連続で請求書を印刷しています。
一つのジョブにまとめて印刷するにはどのようにしたらよいでしょうか?
Sub 連続印刷()
Dim i As Integer
Dim LastRow As Integer
Worksheets("請求書").Select
With Worksheets("データ")
For i = 3 To 5
Range("d1").Value = .Range("A" & i).Value
Range("n1").Value = .Range("A" & i + 1).Value
i = i + 1
ActiveSheet.PrintOut
Next
End With
End Sub
250デフォルトの名無しさん (アウアウクー MM9f-GqXz)
2021/04/15(木) 17:29:43.21ID:c2wrGnlaM >>249
vlookup部分もVBA化して組入れれば一つのJOBに出来るよ
vlookup部分もVBA化して組入れれば一つのJOBに出来るよ
251デフォルトの名無しさん (テテンテンテン MM8e-VoLZ)
2021/04/15(木) 17:46:43.97ID:BAka9uDVM >>249
3つぐらいなら請求書シートを必要分コピーして各々値を入れて複数シートを一気に印刷するしか思い付かない
3つぐらいなら請求書シートを必要分コピーして各々値を入れて複数シートを一気に印刷するしか思い付かない
252デフォルトの名無しさん (アウアウクー MM9f-GqXz)
2021/04/15(木) 17:53:55.45ID:c2wrGnlaM 請求書シートも複数有るなら、それをFor Nextで繰り返すぐらいだろうね
253デフォルトの名無しさん (ワッチョイ e2da-CoCA)
2021/04/15(木) 19:09:26.62ID:pI0uqt930 UI Automationの質問てここでいいの?
VBAでゆっくりムービーメーカー4のキャラクター切り替えをやりたいんだけど、
うまくいかず。
キー操作をWindowsに送ることでごまかしている。
”追加してシーク”ボタンを押すだけならこんな感じでできるんだけど、
Set iCnd = uiAuto.CreatePropertyCondition(UIA_NamePropertyId, "追加してシーク")
Set elmYukkuri_Button = elmYukkuri_timeline.FindFirst(TreeScope_Subtree, iCnd)
Dim InvokePattern As IUIAutomationInvokePattern
Set InvokePattern = elmYukkuri_Button.GetCurrentPattern(UIA_InvokePatternId)
ボタンじゃなくてコンボボックスでボタン内容が切り替わるときはどうすればいいんだろう?
VBAでゆっくりムービーメーカー4のキャラクター切り替えをやりたいんだけど、
うまくいかず。
キー操作をWindowsに送ることでごまかしている。
”追加してシーク”ボタンを押すだけならこんな感じでできるんだけど、
Set iCnd = uiAuto.CreatePropertyCondition(UIA_NamePropertyId, "追加してシーク")
Set elmYukkuri_Button = elmYukkuri_timeline.FindFirst(TreeScope_Subtree, iCnd)
Dim InvokePattern As IUIAutomationInvokePattern
Set InvokePattern = elmYukkuri_Button.GetCurrentPattern(UIA_InvokePatternId)
ボタンじゃなくてコンボボックスでボタン内容が切り替わるときはどうすればいいんだろう?
254デフォルトの名無しさん (ワッチョイ 6268-/CMm)
2021/04/15(木) 21:08:32.60ID:fGNDJEoP0 >>249
俺もそれ使ってたわ
100セットとか印刷するとコピー機占領するからすごい迷惑なんだよね。
色々あって、vbaは逆に使わなくなった
方法はは>>251にかなり近くて、
・シートを連番で用意しておく
・シート名は「3」〜「5」
・vlookupのキーはシート名にする
Range("d1").Valueには、 .Range("A" & シート名).Value
Range("n1").Value には、.Range("A" & シート名+ 1).Value
のように、予めシート名を引っ張ってvlokup部分は完結させておく
後はシート「3」〜シート「5」を選択し、印刷するだけ。ジョブは一つになるし、vbaも不要になる
シート内容が変更になる時は、vbaを使って連番のシートを再作成すると良い
俺もそれ使ってたわ
100セットとか印刷するとコピー機占領するからすごい迷惑なんだよね。
色々あって、vbaは逆に使わなくなった
方法はは>>251にかなり近くて、
・シートを連番で用意しておく
・シート名は「3」〜「5」
・vlookupのキーはシート名にする
Range("d1").Valueには、 .Range("A" & シート名).Value
Range("n1").Value には、.Range("A" & シート名+ 1).Value
のように、予めシート名を引っ張ってvlokup部分は完結させておく
後はシート「3」〜シート「5」を選択し、印刷するだけ。ジョブは一つになるし、vbaも不要になる
シート内容が変更になる時は、vbaを使って連番のシートを再作成すると良い
255デフォルトの名無しさん (JP 0H93-CoCA)
2021/04/15(木) 22:20:13.95ID:8+4wzY1VH 直接印刷せずPDFにすればいいじゃん
PDFなら大量のファイルを1回のジョブで一気に印刷できるぞ
PDFなら大量のファイルを1回のジョブで一気に印刷できるぞ
256デフォルトの名無しさん (ワッチョイ 6268-/CMm)
2021/04/15(木) 22:56:26.48ID:fGNDJEoP0 >255
PDFに出力する時はvbaで制御できないんじゃ
PDFに出力する時はvbaで制御できないんじゃ
257デフォルトの名無しさん (ワッチョイ d7da-mgCR)
2021/04/15(木) 23:42:15.25ID:rzqCvIH40 >>253
ここで良いけど、
UIAutomationとムービーメーカー4両方知ってるレアな人じゃないとわからないと思うぞ。
俺は前者しかわからんからあてずっぽうで言うけど、
FindFirstじゃなくてFindAllして中身を調べれば良いんじゃないの?
ここで良いけど、
UIAutomationとムービーメーカー4両方知ってるレアな人じゃないとわからないと思うぞ。
俺は前者しかわからんからあてずっぽうで言うけど、
FindFirstじゃなくてFindAllして中身を調べれば良いんじゃないの?
258デフォルトの名無しさん (ワッチョイ 77da-tdH6)
2021/04/16(金) 04:48:18.88ID:aO0hqHGi0259249 (ワッチョイ 975f-Qn2Y)
2021/04/16(金) 19:03:44.09ID:yYdNvwCc0 様々なご提案ありがとうございます。
シートを増やして行くやり方にしようと思います。
シートを増やして行くやり方にしようと思います。
260デフォルトの名無しさん (スプッッ Sd3f-RZ4F)
2021/04/17(土) 04:28:55.40ID:aiLxsK7Md 質問です。変更したセルに色をつけたいと思っており、調べたところ変更履歴の使用や色を変更するマクロ(private sub〜)は出てきました。
それに加えて、その色変更をその日だけ有効にすることは可能ですか?
例えば、
4/17 A1の値 1
1→2に変更すると色も変更
4/18 A1の値 2 白に戻っている
2→3に変更すると色も変更…
といった感じなんですが。。。
それに加えて、その色変更をその日だけ有効にすることは可能ですか?
例えば、
4/17 A1の値 1
1→2に変更すると色も変更
4/18 A1の値 2 白に戻っている
2→3に変更すると色も変更…
といった感じなんですが。。。
261デフォルトの名無しさん (ワッチョイ b710-uGOB)
2021/04/17(土) 04:47:34.80ID:5JzvmzAs0 If Today()="2021/04/17" Then
Range("A1").Interior.Color = 256
〜とか条件加えればいいんじゃね
Range("A1").Interior.Color = 256
〜とか条件加えればいいんじゃね
262デフォルトの名無しさん (ワッチョイ 77da-tdH6)
2021/04/17(土) 05:37:32.98ID:HGZEZM9x0 こんなこと出来ますか?
https://i.imgur.com/ypZck9P.png
A列に予め色の見本が、C列に数値を代入していく。
C列に数値を代入したら、そのセルの背景色をA列の色の見本と同じ色にしたい。
A列め色の見本は20色ぐらいを想定。
条件付き書式を使おうと思ったけど、20色も増えたらルールも20個書かないといけないので、ちょっとなえた。
https://i.imgur.com/ypZck9P.png
A列に予め色の見本が、C列に数値を代入していく。
C列に数値を代入したら、そのセルの背景色をA列の色の見本と同じ色にしたい。
A列め色の見本は20色ぐらいを想定。
条件付き書式を使おうと思ったけど、20色も増えたらルールも20個書かないといけないので、ちょっとなえた。
263デフォルトの名無しさん (アウアウウー Sa1b-jxZb)
2021/04/17(土) 06:27:08.23ID:fydw5HpOa >>261
これを、ワークブックオープンにいれておけばよいよ
これを、ワークブックオープンにいれておけばよいよ
264デフォルトの名無しさん (アウアウウー Sa1b-jxZb)
2021/04/17(土) 06:33:53.75ID:fydw5HpOa265デフォルトの名無しさん (ワッチョイ 9f4f-Xji8)
2021/04/17(土) 06:44:21.86ID:iZq5P4oj0 >>262
出来る出来ないで聞かれたら出来ると答えるよ。
方法は?と聞かれたらワークシートチェンジイベントをシートモジュールに付け足して、引数にはRangeが入ってくるから
その範囲にC列が被っていたらそこの数字みてA列の該当する数字の色拾って来て着色する。
イベントの範囲とC列が被っているかどうかは計算でも求められるけど、今回はセル値も見ることになるからFor Each でイベントでとったRangeを
ぐーるぐる回してC列かどうかを見ればいいと思うよ。
その際、イベントの引数の範囲もRangeだけど
Eachの後に書くCellに該当する変数の型もRangeになることに気をつけて。
実はCellって型はRangeなんだよ。
出来る出来ないで聞かれたら出来ると答えるよ。
方法は?と聞かれたらワークシートチェンジイベントをシートモジュールに付け足して、引数にはRangeが入ってくるから
その範囲にC列が被っていたらそこの数字みてA列の該当する数字の色拾って来て着色する。
イベントの範囲とC列が被っているかどうかは計算でも求められるけど、今回はセル値も見ることになるからFor Each でイベントでとったRangeを
ぐーるぐる回してC列かどうかを見ればいいと思うよ。
その際、イベントの引数の範囲もRangeだけど
Eachの後に書くCellに該当する変数の型もRangeになることに気をつけて。
実はCellって型はRangeなんだよ。
266デフォルトの名無しさん (ワッチョイ 375f-OlEI)
2021/04/17(土) 07:03:20.22ID:jQb3oNGZ0267デフォルトの名無しさん (ワッチョイ 9f42-Ct9k)
2021/04/17(土) 07:05:28.63ID:gHXBJYD60 まあ条件付き書式のほうがスッキリしていいと思うけどな
268デフォルトの名無しさん (ワッチョイ 9f4f-Xji8)
2021/04/17(土) 07:19:08.72ID:iZq5P4oj0269デフォルトの名無しさん (アウアウウー Sa1b-jxZb)
2021/04/17(土) 07:26:58.07ID:fydw5HpOa ふつうはシート・チェンジのモジュールのなかで
target.アドレスやtarget.valueで値を取り出すのじゃないのか
なにをやってるのかよくわからんぞ、
target.アドレスやtarget.valueで値を取り出すのじゃないのか
なにをやってるのかよくわからんぞ、
270デフォルトの名無しさん (ワッチョイ b710-uGOB)
2021/04/17(土) 07:28:09.89ID:5JzvmzAs0271デフォルトの名無しさん (ワッチョイ 375f-OlEI)
2021/04/17(土) 07:30:13.57ID:jQb3oNGZ0 口だけ出すのもなんなので一応作ってみた
Sheet1モジュール用
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Alea数値 As Range
Set Alea数値 = Range("C4:C9")
If Intersect(Target, Alea数値) Is Nothing Then Exit Sub
Dim AleaColor As Range
Set AleaColor = Range("A4:A9")
Dim Rng As Range
Dim Color As Long
For Each Rng In AleaColor
If Rng.Value = Target.Value Then
Color = Rng.Interior.Color
Target.Interior.Color = Color
Exit Sub
End If
Next Rng
End Sub
Sheet1モジュール用
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Alea数値 As Range
Set Alea数値 = Range("C4:C9")
If Intersect(Target, Alea数値) Is Nothing Then Exit Sub
Dim AleaColor As Range
Set AleaColor = Range("A4:A9")
Dim Rng As Range
Dim Color As Long
For Each Rng In AleaColor
If Rng.Value = Target.Value Then
Color = Rng.Interior.Color
Target.Interior.Color = Color
Exit Sub
End If
Next Rng
End Sub
272デフォルトの名無しさん (アウアウウー Sa1b-jxZb)
2021/04/17(土) 07:46:50.44ID:fydw5HpOa273デフォルトの名無しさん (ワッチョイ 9fda-tdH6)
2021/04/17(土) 07:47:30.68ID:IoVEY+h40274デフォルトの名無しさん (JP 0H4f-V0/V)
2021/04/17(土) 08:50:15.05ID:xdZBdiobH >>271
いま見返したらAreaがAleaになってるな
いま見返したらAreaがAleaになってるな
275デフォルトの名無しさん (アウアウウー Sa1b-jxZb)
2021/04/17(土) 08:56:18.27ID:fydw5HpOa エクセルは1600万色もあるからどれが赤で黄色なのかわからない
262のように色見本があって、これが赤です。と決めてくれないと
262のように色見本があって、これが赤です。と決めてくれないと
276デフォルトの名無しさん (ワッチョイ 9f68-1iXq)
2021/04/17(土) 09:08:47.12ID:lNzUtf8u0 >275
EXCEL関係ない
EXCEL関係ない
277デフォルトの名無しさん
2021/04/17(土) 12:35:40.75 >>102,103
返信ありがとうございます。
input_str =〜 の()内にB2の文字列を貼付して出来ましたが、
input_str =〜
input_str =〜
と複数行にして試しましたが、複数行は出来ませんでした、どうすれば複数行処理可能になりますでしょうか?
返信ありがとうございます。
input_str =〜 の()内にB2の文字列を貼付して出来ましたが、
input_str =〜
input_str =〜
と複数行にして試しましたが、複数行は出来ませんでした、どうすれば複数行処理可能になりますでしょうか?
278デフォルトの名無しさん (ワッチョイ 57da-qGL9)
2021/04/17(土) 20:38:15.19ID:A+RmKR4F0 >>258
いや、ムービーメーカー4がわからないから、貰ってもわからないし。
コンボボックスって未選択の所?
UIAutomationじゃなくてもSendMessageで行けそうな気がするけど・・。
▼が何の文字を指定すればいいのかわからないって意味なら、
やっぱりFindAllで取得して、配列の何番目にそれっぽいのが入ってるか調べればいいと思うな。
いや、ムービーメーカー4がわからないから、貰ってもわからないし。
コンボボックスって未選択の所?
UIAutomationじゃなくてもSendMessageで行けそうな気がするけど・・。
▼が何の文字を指定すればいいのかわからないって意味なら、
やっぱりFindAllで取得して、配列の何番目にそれっぽいのが入ってるか調べればいいと思うな。
279デフォルトの名無しさん (ワッチョイ 9fda-tdH6)
2021/04/17(土) 20:55:43.60ID:IoVEY+h40 >>278
1日がかりでググりまくりの苦労と試行で出来た。
'コンボボックスを開いて折りたたむ
Dim ptnExpand As IUIAutomationExpandCollapsePattern
Set ptnExpand = elmYukkuri.GetCurrentPattern(UIA_ExpandCollapsePatternId)
ptnExpand.Expand
ptnExpand.Collapse
'コンボボックスの中身をセルA3に書き出す
Set elmYukkuri = elmYukkuri.FindFirst(TreeScope_Subtree, iCnd)
Set iCnd = uiAuto.CreatePropertyCondition(UIA_ClassNamePropertyId, "ListBoxItem")
Set elmsYukkuri = elmYukkuri.FindAll(TreeScope_Children, iCnd)
Set iCnd = uiAuto.CreatePropertyCondition(UIA_ClassNamePropertyId, "TextBlock")
For i = 0 To elmsYukkuri.Length - 1
Set elmYukkuri = elmsYukkuri.GetElement(i).FindFirst(TreeScope_Children, iCnd)
Cells(i + row_セリフ開始, 1).Value = i
Cells(i + row_セリフ開始, 2).Value = elmYukkuri.CurrentName
Next
1日がかりでググりまくりの苦労と試行で出来た。
'コンボボックスを開いて折りたたむ
Dim ptnExpand As IUIAutomationExpandCollapsePattern
Set ptnExpand = elmYukkuri.GetCurrentPattern(UIA_ExpandCollapsePatternId)
ptnExpand.Expand
ptnExpand.Collapse
'コンボボックスの中身をセルA3に書き出す
Set elmYukkuri = elmYukkuri.FindFirst(TreeScope_Subtree, iCnd)
Set iCnd = uiAuto.CreatePropertyCondition(UIA_ClassNamePropertyId, "ListBoxItem")
Set elmsYukkuri = elmYukkuri.FindAll(TreeScope_Children, iCnd)
Set iCnd = uiAuto.CreatePropertyCondition(UIA_ClassNamePropertyId, "TextBlock")
For i = 0 To elmsYukkuri.Length - 1
Set elmYukkuri = elmsYukkuri.GetElement(i).FindFirst(TreeScope_Children, iCnd)
Cells(i + row_セリフ開始, 1).Value = i
Cells(i + row_セリフ開始, 2).Value = elmYukkuri.CurrentName
Next
280デフォルトの名無しさん (ワッチョイ 9ff0-KAGY)
2021/04/18(日) 09:49:47.16ID:AhVY6Zxk0 し
281デフォルトの名無しさん (ワッチョイ 9ff0-KAGY)
2021/04/18(日) 09:56:40.54ID:AhVY6Zxk0 Private Sub Worksheet_Change(ByVal target As Range)
If Intersect(target, Range("A1:A2")) Is Nothing Then
Exit Sub
End If
ClearDates
UpdateDates
End Sub
Sub ClearDates()
Range("A4:A999").Clear
End Sub
Sub UpdateDates()
If IsDate(Range("A1").Value) = False Or IsDate(Range("A2").Value) = False Then
MsgBox "日付を正しく入力してください"
Exit Sub
End If
Dim d As Date, endDate As Date
d = Range("A1").Value
endDate = Range("A2").Value
Dim y As Long
y = 4
Do While d <= Range("A2").Value
Cells(y, 1) = d
d = d + 1
y = y + 1
Loop
End Sub
日付間の日にちが自動で打ちあがるようにしたんですけど
めちゃくちゃ重くてパソコンが固まってしまいますご教授ください
素人みたいな質問ですいません。
If Intersect(target, Range("A1:A2")) Is Nothing Then
Exit Sub
End If
ClearDates
UpdateDates
End Sub
Sub ClearDates()
Range("A4:A999").Clear
End Sub
Sub UpdateDates()
If IsDate(Range("A1").Value) = False Or IsDate(Range("A2").Value) = False Then
MsgBox "日付を正しく入力してください"
Exit Sub
End If
Dim d As Date, endDate As Date
d = Range("A1").Value
endDate = Range("A2").Value
Dim y As Long
y = 4
Do While d <= Range("A2").Value
Cells(y, 1) = d
d = d + 1
y = y + 1
Loop
End Sub
日付間の日にちが自動で打ちあがるようにしたんですけど
めちゃくちゃ重くてパソコンが固まってしまいますご教授ください
素人みたいな質問ですいません。
282デフォルトの名無しさん (ワッチョイ 9f3d-0PWy)
2021/04/18(日) 10:09:03.12ID:CdbHG8Q+0 >>281
Changeイベントをする時は、
処理の前で
Application.EnableEvents=False
処理の後で
Application.EnableEvents=True
が動くようにしないと延々Changeイベントが動いて重くなる
Changeイベントをする時は、
処理の前で
Application.EnableEvents=False
処理の後で
Application.EnableEvents=True
が動くようにしないと延々Changeイベントが動いて重くなる
283デフォルトの名無しさん (ワッチョイ 9f68-1iXq)
2021/04/18(日) 10:09:19.29ID:a83COmqy0 >>281
むしろそれでプロだったらびびるけど・・・
Worksheet_Change()はワークシートの内容が変わった時に発火する
Worksheet_Change()→ClearDates()→Worksheet_Change()→UpdateDates()→Worksheet_Change()→・・・
多分無限ループになっている
こういう時はイベントを無効にしておけば無限ループにならない
Private Sub Worksheet_Change(ByVal target As Range)
object.EnableEvents = false
'内容
object.EnableEvents = true
endsub
むしろそれでプロだったらびびるけど・・・
Worksheet_Change()はワークシートの内容が変わった時に発火する
Worksheet_Change()→ClearDates()→Worksheet_Change()→UpdateDates()→Worksheet_Change()→・・・
多分無限ループになっている
こういう時はイベントを無効にしておけば無限ループにならない
Private Sub Worksheet_Change(ByVal target As Range)
object.EnableEvents = false
'内容
object.EnableEvents = true
endsub
284デフォルトの名無しさん (ワッチョイ 9f68-1iXq)
2021/04/18(日) 10:09:41.04ID:a83COmqy0 すまん、Application.EnableEvents = Falseだった上に遅かった
285デフォルトの名無しさん (ワッチョイ 9ff0-B9Cj)
2021/04/18(日) 10:53:16.67ID:AhVY6Zxk0 すばやい返答ありがとうございます
少し早くてびっくり
VBAははじめて2年ぐらいです
5年後ぐらいにプロになれたらいいな
Private Sub Worksheet_Change(ByVal target As Range)
object.EnableEvents = false
上記を先頭2行と置き換えて
object.EnableEvents = true
endsub
↑この2行は最終行に書けばいいのですか?
素人ですいません!
少し早くてびっくり
VBAははじめて2年ぐらいです
5年後ぐらいにプロになれたらいいな
Private Sub Worksheet_Change(ByVal target As Range)
object.EnableEvents = false
上記を先頭2行と置き換えて
object.EnableEvents = true
endsub
↑この2行は最終行に書けばいいのですか?
素人ですいません!
286デフォルトの名無しさん (JP 0Hbb-tdH6)
2021/04/18(日) 11:21:49.65ID:JCpiu5BAH >>285
直す部分だけ書くと、こう
Private Sub Worksheet_Change(ByVal target As Range)
Application.EnableEvents = False
If Intersect(target, Range("A1:A2")) Is Nothing Then
Exit Sub
End If
ClearDates
UpdateDates
Application.EnableEvents = True
End Sub
直す部分だけ書くと、こう
Private Sub Worksheet_Change(ByVal target As Range)
Application.EnableEvents = False
If Intersect(target, Range("A1:A2")) Is Nothing Then
Exit Sub
End If
ClearDates
UpdateDates
Application.EnableEvents = True
End Sub
287デフォルトの名無しさん (ワッチョイ b768-1iXq)
2021/04/18(日) 12:11:13.84ID:ORj5XeNB0288デフォルトの名無しさん (ワッチョイ 9ff0-B9Cj)
2021/04/18(日) 14:57:21.70ID:AhVY6Zxk0 先生たちありがとうございます!
新設丁寧頭もいい
新設丁寧頭もいい
289デフォルトの名無しさん (ワッチョイ 9ff0-B9Cj)
2021/04/18(日) 14:58:49.68ID:AhVY6Zxk0 自分の力で解決できるようにがんばります!
290デフォルトの名無しさん (ワッチョイ 7701-ubdj)
2021/04/18(日) 16:07:16.06ID:c/Nu40gb0 >>281
それコピペして動かしてみたけど全然重くなかったよ
1900年から今日までにしても4秒くらい
これで固まるのは別の原因があると思う
その場所以外にとても複雑な計算式があって
Cells(y, 1) = d の度に計算して重くなってるとか
そうであれば計算を手動に変えて最後に自動にするとか
セルじゃなくて配列にdを入れて最後に一回だけ出力するとか
UpdateDates()を1行ずつ動かせばどの行で固まってるか分かると思うよ
それコピペして動かしてみたけど全然重くなかったよ
1900年から今日までにしても4秒くらい
これで固まるのは別の原因があると思う
その場所以外にとても複雑な計算式があって
Cells(y, 1) = d の度に計算して重くなってるとか
そうであれば計算を手動に変えて最後に自動にするとか
セルじゃなくて配列にdを入れて最後に一回だけ出力するとか
UpdateDates()を1行ずつ動かせばどの行で固まってるか分かると思うよ
291デフォルトの名無しさん (アウアウウー Sa1b-0PWy)
2021/04/18(日) 16:21:48.14ID:n1x9QJALa >>290
それはChangeイベントで検証しましたか?
それはChangeイベントで検証しましたか?
292デフォルトの名無しさん (スプッッ Sd3f-RZ4F)
2021/04/18(日) 19:37:56.63ID:Z7m7Dr1xd >>261
ありがとうございます。試してみます。
ありがとうございます。試してみます。
293デフォルトの名無しさん (ワッチョイ 7701-ubdj)
2021/04/18(日) 20:47:27.38ID:c/Nu40gb0294デフォルトの名無しさん (ワッチョイ 57da-tdH6)
2021/04/18(日) 23:15:06.97ID:FAQ+sCCd0 https://i.imgur.com/8OFf7Pv.jpg
B4:E6を画像として出力したいんだけど、Rangeの範囲指定をどういじっても、B3:E6が出力されてしまう。
B4:C6を指定してもB3:E6が出力されてしまう。
どうすればいいの?
B4:E6を画像として出力したいんだけど、Rangeの範囲指定をどういじっても、B3:E6が出力されてしまう。
B4:C6を指定してもB3:E6が出力されてしまう。
どうすればいいの?
295デフォルトの名無しさん (JP 0Hbb-tdH6)
2021/04/19(月) 00:55:03.43ID:BhG1xyLeH >>294
CurrentRegionを使わない
CurrentRegionを使わない
296デフォルトの名無しさん (ワッチョイ b7da-tdH6)
2021/04/19(月) 01:56:46.57ID:/e3Iiylf0297デフォルトの名無しさん (ワッチョイ bf7c-mkHL)
2021/04/19(月) 10:20:37.00ID:gkbaJTWH0 Name As でExcel以外のJpegファイル等のファイル名を変えることができると思いますが、そもそもなんでEXCELで他のソフトウェアのファイル名変えられるんでしょ?
便利だからいいんですけど
便利だからいいんですけど
298デフォルトの名無しさん (JP 0Hbb-tdH6)
2021/04/19(月) 10:27:18.04ID:BhG1xyLeH299デフォルトの名無しさん (ワッチョイ bf7c-mkHL)
2021/04/19(月) 10:41:44.29ID:gkbaJTWH0 そっか、OSを操作してるんでしたね
EXCELもOSも同じメーカーだからこそできる技なんですな
EXCELもOSも同じメーカーだからこそできる技なんですな
300デフォルトの名無しさん (ワッチョイ 778e-u7Bp)
2021/04/19(月) 21:03:08.15ID:K5RFczke0 >>299
馬鹿?
馬鹿?
301デフォルトの名無しさん (ワンミングク MM7f-wYoi)
2021/04/19(月) 21:19:11.87ID:80cIHSk1M >>299
知能に問題がある人かな
知能に問題がある人かな
302デフォルトの名無しさん (ワッチョイ 9fe6-tdH6)
2021/04/19(月) 21:54:25.72ID:zOv5i/QS0 昔のExcelは非公開API使ってたとか噂を聞いたことがある
303デフォルトの名無しさん (アウアウウー Sa1b-CpDH)
2021/04/19(月) 23:09:31.11ID:Qr9ctU7Wa 噂を信じるな
304デフォルトの名無しさん (アウアウウー Sa1b-jxZb)
2021/04/19(月) 23:15:55.48ID:NSiRzHFAa なつかしいなぁ 90年から2000年ぐらいの頃だな
305デフォルトの名無しさん (ワッチョイ 9f90-ubdj)
2021/04/20(火) 00:42:55.05ID:LQ8i77JG0 あるシートをコピーした時、
「移動またはコピーしようとしている数式またはシートには、移動またはコピー先のワークシートに既にある名前’○○○’が含まれています。この名前を使用しますか?」
が延々と出てくるのがうざいので、
メッセージを出さないようにするマクロって作れますか?
事前に名前の定義から削除するのではなく、シートをコピーしたら、メッセージを出さずに名前の定義を削除したいです。
詳しい方、ご教示をよろしくお願いいたします。
「移動またはコピーしようとしている数式またはシートには、移動またはコピー先のワークシートに既にある名前’○○○’が含まれています。この名前を使用しますか?」
が延々と出てくるのがうざいので、
メッセージを出さないようにするマクロって作れますか?
事前に名前の定義から削除するのではなく、シートをコピーしたら、メッセージを出さずに名前の定義を削除したいです。
詳しい方、ご教示をよろしくお願いいたします。
306デフォルトの名無しさん (ワッチョイ 9fad-B9Iy)
2021/04/20(火) 01:37:22.55ID:ptbZPsIm0 書式設定をコピーしなくて良いなら配列に値を代入して新しいシートに貼り付けが楽じゃない?
書式もって言うなら出力後に書式だけコピーしてやるとか
書式もって言うなら出力後に書式だけコピーしてやるとか
307デフォルトの名無しさん (ワッチョイ 9f3d-0PWy)
2021/04/20(火) 07:08:37.93ID:j3U7nYtJ0 VBAで隠蔽使ってる人はどんな時に使ってますか?
ぶっちゃけPropertyGetだけでいい気がしてきてしまったので、適切な使い所を知りたいです
ぶっちゃけPropertyGetだけでいい気がしてきてしまったので、適切な使い所を知りたいです
308デフォルトの名無しさん (ワッチョイ 9f90-ubdj)
2021/04/20(火) 07:20:28.94ID:LQ8i77JG0309デフォルトの名無しさん (スフッ Sdbf-tdH6)
2021/04/20(火) 07:26:26.47ID:sns0znWgd >>307
二人以上で開発する時、または長期に渡るメンテが必要になりそうな時
二人以上で開発する時、または長期に渡るメンテが必要になりそうな時
310デフォルトの名無しさん (ワッチョイ b768-1iXq)
2021/04/20(火) 07:29:11.43ID:aQV8TqKv0311デフォルトの名無しさん (ササクッテロラ Sp8b-Xji8)
2021/04/20(火) 12:11:30.20ID:fqIzsxE3p >>307
メッセージングを行う際にて不必要と思われるメソッド(関数)や変数、プロパティは隠蔽する。
メッセージングを行う際にて不必要と思われるメソッド(関数)や変数、プロパティは隠蔽する。
312デフォルトの名無しさん (ササクッテロラ Sp8b-Xji8)
2021/04/20(火) 12:18:15.46ID:fqIzsxE3p いや?
そもそも変数はプロパティかメソッド(関数)の引数や戻り値でしか受け渡ししないから変数は隠蔽しないことは無いか
そもそも変数はプロパティかメソッド(関数)の引数や戻り値でしか受け渡ししないから変数は隠蔽しないことは無いか
313デフォルトの名無しさん (ワッチョイ ffda-tdH6)
2021/04/20(火) 12:27:20.11ID:WjARqIhg0 >>307
ぶっちゃけPropertyGetだけでいいです、他のことはやらなくていいです
ぶっちゃけPropertyGetだけでいいです、他のことはやらなくていいです
314デフォルトの名無しさん (ワッチョイ b768-1iXq)
2021/04/20(火) 18:45:51.60ID:aQV8TqKv0 変数を隠蔽しておけばgetter・setterを必ず通るからそこさえ監視しておけば後を追える
変数丸出しだとどこから触られるかわからないのでデバッグが死ぬほど大変になる
変数丸出しだとどこから触られるかわからないのでデバッグが死ぬほど大変になる
315デフォルトの名無しさん (アウアウウー Sa1b-jxZb)
2021/04/20(火) 19:02:40.74ID:grfVULwwa みんなが使うのはパブリック
自分だけで使いたいときはプライベート
XとかY,Zなんかはプライベートにしましょう
自分だけで使いたいときはプライベート
XとかY,Zなんかはプライベートにしましょう
316デフォルトの名無しさん (アウアウウー Sa1b-jxZb)
2021/04/20(火) 19:16:00.04ID:grfVULwwa たんじゅんに
プライベートなら3文字以下
パブリックは5文字以上
そう決めておけばよいよ
プライベートなら3文字以下
パブリックは5文字以上
そう決めておけばよいよ
317デフォルトの名無しさん (アウアウウー Sa1b-CpDH)
2021/04/20(火) 20:06:43.69ID:f6iXtgoua >>314
デバッグなんかやんないくせに
デバッグなんかやんないくせに
318デフォルトの名無しさん (ワッチョイ ff10-wmn0)
2021/04/20(火) 21:17:43.05ID:teqpRJSw0 人の書いたコードなんて読めない
自分で書いても1ヶ月後には読めない
自分で書いても1ヶ月後には読めない
319デフォルトの名無しさん (ワッチョイ 9f4f-Xji8)
2021/04/20(火) 21:32:16.88ID:N2s7rCY20 >>318
人が書いたコードは兎も角
自分の書いたコードが読めないのはちょっとね
上からつらつらと書くんじゃなくて
小さな部品から作って
組み合わせて大きな部品を作って
更に組み合わせて・・・みたいに書くと
分かり易いコードを書けるよ
逆に誰が読んでも分かり易いコードが
書けるようになったらもうすぐVBA卒業だよ
人が書いたコードは兎も角
自分の書いたコードが読めないのはちょっとね
上からつらつらと書くんじゃなくて
小さな部品から作って
組み合わせて大きな部品を作って
更に組み合わせて・・・みたいに書くと
分かり易いコードを書けるよ
逆に誰が読んでも分かり易いコードが
書けるようになったらもうすぐVBA卒業だよ
320デフォルトの名無しさん (アウアウウー Sa1b-jxZb)
2021/04/20(火) 21:33:10.03ID:grfVULwwa 文章のきほんは5w1H
321デフォルトの名無しさん (ワッチョイ ffb3-pj+b)
2021/04/21(水) 00:03:03.35ID:VYKRrHWq0 現場のためにマクロ作ってて
性能確認は現場に投げてるけど
どういう処理をしてるとか一切考慮してなくて正常な処理をバグ言われてちょっと辛い
わかる人いる?
性能確認は現場に投げてるけど
どういう処理をしてるとか一切考慮してなくて正常な処理をバグ言われてちょっと辛い
わかる人いる?
322デフォルトの名無しさん (ワッチョイ 778e-u7Bp)
2021/04/21(水) 00:28:41.53ID:mZ1GtAH60 わかる。仕様も確定できない馬鹿だと。
323デフォルトの名無しさん (ワッチョイ ffb3-pj+b)
2021/04/21(水) 00:48:54.24ID:VYKRrHWq0 すごく突っ込みたいけどかなーり年上のおじいちゃんばっかでちょっと言いづらかったり
ありがとう、ちょっと楽になった
明日ガツンと言ってやる(笑)
ありがとう、ちょっと楽になった
明日ガツンと言ってやる(笑)
324デフォルトの名無しさん (ワッチョイ ffda-tdH6)
2021/04/21(水) 02:31:17.44ID:QPNAyMuU0325デフォルトの名無しさん (ワッチョイ b710-uGOB)
2021/04/21(水) 04:00:51.54ID:KhV9jsbh0 正常な処理なら伝えりゃいいだけだろ
MsgBox出すなり、シートに書いとくなり、口で言うなりして
MsgBox出すなり、シートに書いとくなり、口で言うなりして
326デフォルトの名無しさん (アウアウウー Sa1b-jxZb)
2021/04/21(水) 11:09:16.06ID:aZ4kV5qwa わからんものを説明するときは5w1hでよいから
聞いているほうも分かった気になる
聞いているほうも分かった気になる
327デフォルトの名無しさん (ブーイモ MMbb-B9Iy)
2021/04/21(水) 12:00:56.40ID:TWzI1JIsM エラーメッセージ出そうが絵本みたいなマニュアル作ろうが「ちゃんと動かないぞ!ポンコツめ!」って騒ぐオヤジがおる。んでよくよく聞いてみたらメッセージは読まずに閉じるわマニュアルは開くことすらしてねぇわ日付入力しろって書いてある項目に「多分5/10」とか書いてくれちゃうわであぁ何やっても無駄な時は無駄なんだなぁってなった事が何度もある
328デフォルトの名無しさん (ワッチョイ 9f4f-Xji8)
2021/04/21(水) 12:37:02.29ID:BXHy+8up0 >>327
直接お客さんとやり取りしてるの?
そうで無ければ上司か島のリーダーさんに
中間に入ってもらえば?
もし直接お客さんとやり取りしているなら
そもそもプログラマーとお客さんが
窓口も介さず直接やり取りを行う
形態自体に問題があると思うけど
リーダーさんとか上司に相談するべき
もっとも、自分がその窓口ですと言うのなら
最初っからどこをどうして欲しいか
よーく聞いてから作る方がいい。
どうせ用件定義書なんて存在して
いないんでしょ?
直接お客さんとやり取りしてるの?
そうで無ければ上司か島のリーダーさんに
中間に入ってもらえば?
もし直接お客さんとやり取りしているなら
そもそもプログラマーとお客さんが
窓口も介さず直接やり取りを行う
形態自体に問題があると思うけど
リーダーさんとか上司に相談するべき
もっとも、自分がその窓口ですと言うのなら
最初っからどこをどうして欲しいか
よーく聞いてから作る方がいい。
どうせ用件定義書なんて存在して
いないんでしょ?
329デフォルトの名無しさん (アウアウウー Sa1b-jxZb)
2021/04/21(水) 14:00:48.01ID:aZ4kV5qwa おいおい、エクセルのマクロぐらいで定義書はつくらんだろ
ふつうはマクロができてからしようが決まるから
ふつうはマクロができてからしようが決まるから
330デフォルトの名無しさん (ゲマー MMdf-V0/V)
2021/04/21(水) 17:35:07.95ID:Gd/0Jck0M >>327
さすがにIsDateくらい使おうぜ
さすがにIsDateくらい使おうぜ
331デフォルトの名無しさん (オッペケ Sr8b-nOOc)
2021/04/21(水) 17:53:28.95ID:k6MIIAN/r 年配のジジイ騙して金取れるなら今の体制維持も考慮すべき
332デフォルトの名無しさん (ブーイモ MMcf-B9Iy)
2021/04/21(水) 18:25:58.81ID:2kwhHx0qM >>328
上司に頼まれて作った子会社の人達の作業進捗を確認する為のスケジュール管理ツールなんだ
今まで手書きでやってたのを電子化したかったんだと
要求仕様の箇条書きを渡されて好きに作っていいって言われたから仕様書とかコーディング規約とか諸々自分で用意した
まぁ流石に向こうの課長さんから当事者のおっちゃんに雷落ちたらしいが
>>330
流石に動作前に入力のエラーチェックはかけてるさ
それでlsDateでチェックして日付じゃなけりゃ処理を停止して「No.〇〇の工程の開始予定日が日付じゃねぇから書き直せ」って類のメッセージ出してるんだがメッセージ読んでねぇから「マトモに動かないポンコツツール」って喚き散らしてたんよ
上司に頼まれて作った子会社の人達の作業進捗を確認する為のスケジュール管理ツールなんだ
今まで手書きでやってたのを電子化したかったんだと
要求仕様の箇条書きを渡されて好きに作っていいって言われたから仕様書とかコーディング規約とか諸々自分で用意した
まぁ流石に向こうの課長さんから当事者のおっちゃんに雷落ちたらしいが
>>330
流石に動作前に入力のエラーチェックはかけてるさ
それでlsDateでチェックして日付じゃなけりゃ処理を停止して「No.〇〇の工程の開始予定日が日付じゃねぇから書き直せ」って類のメッセージ出してるんだがメッセージ読んでねぇから「マトモに動かないポンコツツール」って喚き散らしてたんよ
333デフォルトの名無しさん (アウアウウー Sa1b-jxZb)
2021/04/21(水) 19:16:43.30ID:aZ4kV5qwa 中抜きの現場をそのまま見ているような
人の入力チェックはけっこうノウハウいるのね
人の入力チェックはけっこうノウハウいるのね
334デフォルトの名無しさん (アウアウウー Sa1b-jxZb)
2021/04/21(水) 19:18:54.99ID:aZ4kV5qwa 進捗管理ツールてまともな奴はみたことがない
335デフォルトの名無しさん (アウアウウー Sa1b-CpDH)
2021/04/21(水) 20:16:57.95ID:ukt/rEUCa 文句いわれた程度で逆ギレかやっぱゆとりだな
336デフォルトの名無しさん (ワッチョイ 778e-u7Bp)
2021/04/21(水) 20:18:22.64ID:mZ1GtAH60 >>332
やっぱり馬鹿か
やっぱり馬鹿か
337デフォルトの名無しさん (ワッチョイ 9f4f-Xji8)
2021/04/21(水) 21:08:21.14ID:BXHy+8up0 >>332
なるほど大体状況は理解出来た
まぁボロくそに言ってたおっちゃんもおっちゃんだけど、果たして君の作ったツールは
今まで手書きでやってた人がいきなりパソコン使って打ち込めるような優しい設計になっていたのかな?
下請けでしかもスケジューラー作成なんて自由度の高いものを上司が君に振ったのはひょっとしたらその辺の事も兼ねて
君が今回それを通してどんなことを学ぶかを見ていた可能性があるね。
そのおっちゃんはボロくそに言ったかも知れないけどそれが現場で作業している人の正直な意見であることには間違いないよ。厳しいかも知れないけどね。
なるほど大体状況は理解出来た
まぁボロくそに言ってたおっちゃんもおっちゃんだけど、果たして君の作ったツールは
今まで手書きでやってた人がいきなりパソコン使って打ち込めるような優しい設計になっていたのかな?
下請けでしかもスケジューラー作成なんて自由度の高いものを上司が君に振ったのはひょっとしたらその辺の事も兼ねて
君が今回それを通してどんなことを学ぶかを見ていた可能性があるね。
そのおっちゃんはボロくそに言ったかも知れないけどそれが現場で作業している人の正直な意見であることには間違いないよ。厳しいかも知れないけどね。
338デフォルトの名無しさん (ゲマー MM4f-V0/V)
2021/04/22(木) 07:33:17.38ID:7heM3Ej5M まあVBAじゃなくとも自分が便利だと思っている価値観を人に理解してもらうのは難しい
339デフォルトの名無しさん (アウアウクー MM8b-pIuX)
2021/04/22(木) 09:34:46.13ID:gwtiqwMsM340デフォルトの名無しさん (ワッチョイ ffda-CpDH)
2021/04/22(木) 12:44:53.98ID:hcaPQHcf0 自分の給料がどこから来るのかを考えれば適当な対応はできないとおもうが
341デフォルトの名無しさん (ワッチョイ d7b1-4RQ2)
2021/04/22(木) 17:31:38.77ID:voAAUW4i0 VBAでは非0は真として扱われるということでいいですか?
342デフォルトの名無しさん (ワッチョイ 9f4f-Xji8)
2021/04/22(木) 17:54:34.03ID:aG329xgw0 >>341
型による
型による
343デフォルトの名無しさん (ワッチョイ d7b1-4RQ2)
2021/04/22(木) 18:05:18.29ID:voAAUW4i0 >>342
整数です
整数です
344デフォルトの名無しさん (ワッチョイ d7b1-4RQ2)
2021/04/22(木) 18:08:01.13ID:voAAUW4i0 あーけど
エラー値も判定の対象になるかもです
エラー値も判定の対象になるかもです
345デフォルトの名無しさん (ワッチョイ d7b1-4RQ2)
2021/04/22(木) 18:25:55.35ID:voAAUW4i0 ごめんなさい回りくどい質問せずに
直球で質問すると
if instr(str1,str2)>0 then
の>0って要らなくないか?ってことです
直球で質問すると
if instr(str1,str2)>0 then
の>0って要らなくないか?ってことです
346デフォルトの名無しさん (ワッチョイ 9f4f-Xji8)
2021/04/22(木) 18:47:47.49ID:aG329xgw0 >>345
やめとけ。まずInstrで何が返ってくるのか確認するんだ
http://officetanaka.net/excel/vba/function/instr.htm
NULLが入って来ることもあるからLEN関数で囲む感じになるのか?
どちらにしても可読性が落ちるようなものやトリッキーなことはなるべく避けた方がいい
そんなこと全般に渡ってやってたら
1月後には自分が作ったソースが読めなくなるぞ
やめとけ。まずInstrで何が返ってくるのか確認するんだ
http://officetanaka.net/excel/vba/function/instr.htm
NULLが入って来ることもあるからLEN関数で囲む感じになるのか?
どちらにしても可読性が落ちるようなものやトリッキーなことはなるべく避けた方がいい
そんなこと全般に渡ってやってたら
1月後には自分が作ったソースが読めなくなるぞ
347デフォルトの名無しさん (アウアウウー Sa1b-jxZb)
2021/04/22(木) 19:10:26.59ID:+FKRqhM4a うむ
理系のひとはなんでも yes/Noで考えががちだけと
そういう論理式はむつかしい
現実にはyes/No/無回答 /cancelの4値だから
それに否定<>もあまり多用しないほうがよい
A<>false or B<>false or C<>false
こういうのわけわからんから
IF A=true and B=true and C=true then
else
×××××××
ENDIF
こうしておく、終電に間に合うぞ
理系のひとはなんでも yes/Noで考えががちだけと
そういう論理式はむつかしい
現実にはyes/No/無回答 /cancelの4値だから
それに否定<>もあまり多用しないほうがよい
A<>false or B<>false or C<>false
こういうのわけわからんから
IF A=true and B=true and C=true then
else
×××××××
ENDIF
こうしておく、終電に間に合うぞ
348デフォルトの名無しさん (JP 0Hbb-tdH6)
2021/04/22(木) 19:52:34.43ID:UidQzhn6H349デフォルトの名無しさん (スププ Sdbf-wmn0)
2021/04/22(木) 21:01:52.31ID:hn+92ycNd 理系文系家系関係あるかそれ
350デフォルトの名無しさん (アウアウウー Sa1b-DjtJ)
2021/04/22(木) 23:02:56.56ID:vfns6Sdda VBAでは問題ないのだろうけど、TRUE をイコールで判定するのはどうも…
351デフォルトの名無しさん (ワッチョイ d7b1-4RQ2)
2021/04/22(木) 23:11:41.16ID:voAAUW4i0 ありがとうございます
素直に省略せずに比較演算子を使うことにします
素直に省略せずに比較演算子を使うことにします
352デフォルトの名無しさん (アウアウウー Sab5-4hJQ)
2021/04/23(金) 01:03:06.83ID:ftZ+9Vdga >>349
体育会系もついか
体育会系もついか
353デフォルトの名無しさん (ワッチョイ f64f-Opq7)
2021/04/23(金) 04:16:22.24ID:IAv7U8Ah0 >>350
そうだね
まぁそういうときによく話に上がるコードだけども
Dim A As Boolean
Dim B As Boolean
Dim C As Boolean
A = False
B = False
C = False
A = B = C
こんなコードがあったとして
VBAではこれはエラーにならない
慣れてる人ならAにTrueが入ることが
すぐ分かるけど
慣れていない人はAにFalseが入ると
思ってしまうこともある
単純な式だから「そんなバカいねーよ」と
思うかも知れないけど
これを複雑な式に混ぜられた場合を考えると
結構キツいことになったりもするよ
そうだね
まぁそういうときによく話に上がるコードだけども
Dim A As Boolean
Dim B As Boolean
Dim C As Boolean
A = False
B = False
C = False
A = B = C
こんなコードがあったとして
VBAではこれはエラーにならない
慣れてる人ならAにTrueが入ることが
すぐ分かるけど
慣れていない人はAにFalseが入ると
思ってしまうこともある
単純な式だから「そんなバカいねーよ」と
思うかも知れないけど
これを複雑な式に混ぜられた場合を考えると
結構キツいことになったりもするよ
354デフォルトの名無しさん (ワッチョイ bd10-y5Lq)
2021/04/23(金) 05:12:18.96ID:Rqoeq7ma0 話の主旨が分からん
代入じゃないんだから「==」にしたいって話?
それならBooleanは関係ないよな…
代入じゃないんだから「==」にしたいって話?
それならBooleanは関係ないよな…
355デフォルトの名無しさん (ワッチョイ f64f-Opq7)
2021/04/23(金) 05:41:22.55ID:IAv7U8Ah0356デフォルトの名無しさん (ワッチョイ f64f-Opq7)
2021/04/23(金) 05:51:27.06ID:IAv7U8Ah0 手前側のイコールが代入で後ろのイコールが比較演算子だから他の言語だと
A = B == C;
みたいな書き方になったりするのかな
ただVBAではどっちもイコールひとつで分かり辛いから、その辺ちゃんと分かるように書いた方がいいよと言うのが話の趣旨だね
A = B == C;
みたいな書き方になったりするのかな
ただVBAではどっちもイコールひとつで分かり辛いから、その辺ちゃんと分かるように書いた方がいいよと言うのが話の趣旨だね
357デフォルトの名無しさん (JP 0H98-On6t)
2021/04/23(金) 06:24:58.47ID:TaQs1RgsH それは文法の話であって論理(式)の話ではないな
途中で混ざってすり変わってる
途中で混ざってすり変わってる
358デフォルトの名無しさん (ワッチョイ 3af0-3cD6)
2021/04/23(金) 06:27:12.51ID:P8K+Jhr50 5
359デフォルトの名無しさん (JP 0H98-On6t)
2021/04/23(金) 06:40:22.74ID:TaQs1RgsH a=b=cがすべて代入になる言語もあるからややこしいって話だと思うけど
手を抜かずに式を分けたりカッコを付ければいいだけ
コメントを書いたり変数名をわかりやすくするのと同列で、ミスを減らす工夫はプログラマーの義務
すべて代入したい時
b=c
a=b
比較したい時
a=(b=c)
手を抜かずに式を分けたりカッコを付ければいいだけ
コメントを書いたり変数名をわかりやすくするのと同列で、ミスを減らす工夫はプログラマーの義務
すべて代入したい時
b=c
a=b
比較したい時
a=(b=c)
360デフォルトの名無しさん (アウアウウー Sab5-4hJQ)
2021/04/23(金) 07:36:07.75ID:F+E5VVCoa プログラム上の論理式は2値論理がほとんどだから
じっさいは仕様によっていくらでも沢山あるからあるから
そういうのは丁寧にコメントをいくしかない
じっさいは仕様によっていくらでも沢山あるからあるから
そういうのは丁寧にコメントをいくしかない
361350 (アウアウウー Sa83-jiG2)
2021/04/23(金) 09:30:59.30ID:fSz9RP/oa 僕が言ったのは次のようなことです
VBAでいうと、True は -1 だが
Dim i As Long
i = 123
If i = True Then
はイコールと評価される
内部的には CBool(i) = True と評価されているのだと思う
C言語では TRUE は 1 と定義されていて、
int i = 123:
if (i == TRUE) {
では i を暗黙裡に論理型に変換しないので、イコールと評価されない(非0が真である直感に反する)
ということでした(123 と 1 を愚直に比較する)
FALSE は 0 と定義されていて、これは比較に用いてもよい
VBAでいうと、True は -1 だが
Dim i As Long
i = 123
If i = True Then
はイコールと評価される
内部的には CBool(i) = True と評価されているのだと思う
C言語では TRUE は 1 と定義されていて、
int i = 123:
if (i == TRUE) {
では i を暗黙裡に論理型に変換しないので、イコールと評価されない(非0が真である直感に反する)
ということでした(123 と 1 を愚直に比較する)
FALSE は 0 と定義されていて、これは比較に用いてもよい
362デフォルトの名無しさん (テテンテンテン MM34-TKdI)
2021/04/23(金) 09:32:37.82ID:ze7VlHimM363350 (アウアウウー Sa83-jiG2)
2021/04/23(金) 09:32:48.97ID:fSz9RP/oa 間違ってたらごめんなさい
364350 (アウアウウー Sa83-jiG2)
2021/04/23(金) 09:35:24.69ID:fSz9RP/oa a = b = c = 0
で、a、b、c すべてに 0 を代入したいとか
で、a、b、c すべてに 0 を代入したいとか
365デフォルトの名無しさん (ワッチョイ f64f-Opq7)
2021/04/23(金) 09:46:20.67ID:IAv7U8Ah0 >>363
それで合ってるよ
ちなみに-1なのは変数の内容を
ビットとして見たとき全て立っていると
言うことの名残りだって
昔このスレの誰かが言ってた
もっとも今内部的にPコードで
ビットがどれか立っていればって
判断しているかは知らんけど
それで合ってるよ
ちなみに-1なのは変数の内容を
ビットとして見たとき全て立っていると
言うことの名残りだって
昔このスレの誰かが言ってた
もっとも今内部的にPコードで
ビットがどれか立っていればって
判断しているかは知らんけど
366デフォルトの名無しさん (JP 0H98-On6t)
2021/04/23(金) 09:48:01.57ID:TaQs1RgsH VBやVBAだと0だけがfalse、それ以外はみんなtrueとみなされる
たとえば
a = 100
If a Then
だとaはtrueになってIfの中が実行される
たとえば
a = 100
If a Then
だとaはtrueになってIfの中が実行される
367デフォルトの名無しさん (アウアウウー Sab5-4hJQ)
2021/04/23(金) 12:40:15.83ID:F+E5VVCoa 2値論理はむかし60年から70年台のワイヤーロジック時代にもて囃されたけど
もう令和なんだし、古すぎるよね
80歳のおじいさんならともかく
若い人は使わないようにしましょ
もう令和なんだし、古すぎるよね
80歳のおじいさんならともかく
若い人は使わないようにしましょ
368デフォルトの名無しさん (アウアウウー Sab5-4hJQ)
2021/04/23(金) 12:45:24.75ID:F+E5VVCoa リレーやSWを組み合わせてコンピュータをつくろう
そんなチャレンジャーはいるかな
そんなチャレンジャーはいるかな
369デフォルトの名無しさん (ワッチョイ 412f-1bRV)
2021/04/23(金) 14:08:52.13ID:tTrKrHtH0 Falseが0とかいうのは正確には正しくない
Falseを数値として評価すると0というのが正しくて
暗黙の変換を無視して話すとおかしなことになるぞ
Trueが0以外というのはもっと間違ってて
Trueは数値として評価すると-1
0以外の数値をBooleanとして評価するとTrueというのが正しい
型にゆるいというBASICの伝統を引き継いで暗黙の変換って仕様があるせいなんだが
まあ今更その仕様にどうこう言ってもなぁ
Falseを数値として評価すると0というのが正しくて
暗黙の変換を無視して話すとおかしなことになるぞ
Trueが0以外というのはもっと間違ってて
Trueは数値として評価すると-1
0以外の数値をBooleanとして評価するとTrueというのが正しい
型にゆるいというBASICの伝統を引き継いで暗黙の変換って仕様があるせいなんだが
まあ今更その仕様にどうこう言ってもなぁ
370デフォルトの名無しさん (アウアウウー Saab-edqc)
2021/04/23(金) 14:38:37.17ID:fkUQFj8fa 結局のところ3ヶ月後の自分がコードの理解ができるかどうかってところよね
371デフォルトの名無しさん (ワッチョイ 2cda-On6t)
2021/04/23(金) 19:44:06.36ID:8NALutx50 別の奴が新しいの作ってるに1ガバチョ
372デフォルトの名無しさん (ワッチョイ b701-Bsub)
2021/04/23(金) 21:55:04.78ID:TCRfyG2B0 VBAで書くようなコードは変数名をちゃんと書いておけば大体問題ないよ
質問しにくる人のコード見ると、aみたいな意味のない変数名や省略してたりするのが多いんで・・・
VBAってプログラミングの入口になる事が多いので、
妙な向上心から変なテク(特に処理速度関係)を導入しがちだけど、
バカみたいに基本に忠実かつ丁寧にするのがいいと思います。
質問しにくる人のコード見ると、aみたいな意味のない変数名や省略してたりするのが多いんで・・・
VBAってプログラミングの入口になる事が多いので、
妙な向上心から変なテク(特に処理速度関係)を導入しがちだけど、
バカみたいに基本に忠実かつ丁寧にするのがいいと思います。
373デフォルトの名無しさん (ワッチョイ a68f-On6t)
2021/04/23(金) 21:58:49.34ID:g1z9C06A0 >>370
至言だよな。
至言だよな。
374デフォルトの名無しさん (ワッチョイ a68f-On6t)
2021/04/23(金) 22:02:08.91ID:g1z9C06A0 >>372
w
仕事で使わされてる「しすてむ」のvba部分のソース開いたらまさに
If c = r/2 then
cc = r/2
rr = r/4
End If
みたいな感じで、しかもノーコメントだったわ。何してるルーチンなのかも
説明なくて読む気になれなかった。
w
仕事で使わされてる「しすてむ」のvba部分のソース開いたらまさに
If c = r/2 then
cc = r/2
rr = r/4
End If
みたいな感じで、しかもノーコメントだったわ。何してるルーチンなのかも
説明なくて読む気になれなかった。
375デフォルトの名無しさん (ワッチョイ a868-8KU9)
2021/04/23(金) 22:29:27.77ID:lNHxMJRv0 色々なデータを引っ張ってきて、加工してピボット作って集計して・・・結局使ってねー!
ってコードを見た時はずっこけた
改修前になにかで使ってたのかもしれないけど
ってコードを見た時はずっこけた
改修前になにかで使ってたのかもしれないけど
376デフォルトの名無しさん (ワッチョイ 154f-0NDc)
2021/04/24(土) 01:19:16.60ID:zm0BIqCc0 配列を引数にしたときに関数側でVariant()で受け取れないのは何故?
Variantカッコなしなら問題ないんだけど理屈が分からない
Variantカッコなしなら問題ないんだけど理屈が分からない
377デフォルトの名無しさん (ワッチョイ 70da-wusC)
2021/04/24(土) 02:14:07.08ID:4BGM8nym0378デフォルトの名無しさん (アウアウウー Sab5-4hJQ)
2021/04/24(土) 08:12:03.15ID:nm6+mfpAa379デフォルトの名無しさん (アウアウウー Sab5-4hJQ)
2021/04/24(土) 08:30:08.06ID:nm6+mfpAa だから他人のつくったソフトを治すのがけっこう好き
380デフォルトの名無しさん (ワッチョイ f64f-Opq7)
2021/04/24(土) 08:59:02.95ID:hh64S9E70 俺は嫌い
大体人のもの直せって話が降ってくるときは
他の人が見た後で、ぐっちゃぐちゃで
どんだけスパゲティが好きなんだよ、
お前はこの関数に何をやらせたかったんだよ!
みたいのばっかり
そして大概作り直した方が早い
大体人のもの直せって話が降ってくるときは
他の人が見た後で、ぐっちゃぐちゃで
どんだけスパゲティが好きなんだよ、
お前はこの関数に何をやらせたかったんだよ!
みたいのばっかり
そして大概作り直した方が早い
381デフォルトの名無しさん (ワッチョイ 7349-5yyl)
2021/04/24(土) 09:29:33.79ID:B50KhnoE0 早いというか素直に作れる
382デフォルトの名無しさん (ブーイモ MM5e-i9BS)
2021/04/24(土) 09:30:19.42ID:y3ko2vbIM >>380
おバカ自慢は要らない
おバカ自慢は要らない
383デフォルトの名無しさん (アウアウウー Sab5-4hJQ)
2021/04/24(土) 09:44:22.09ID:nm6+mfpAa www
それをバージョンアップと言うんだよ
それをバージョンアップと言うんだよ
384デフォルトの名無しさん (JP 0H98-On6t)
2021/04/24(土) 14:07:12.02ID:K1BlKgeMH 言わない、かな
385デフォルトの名無しさん (ワッチョイ 9b5f-APZP)
2021/04/24(土) 16:44:37.66ID:0Etp2+DY0386デフォルトの名無しさん (ワッチョイ f64f-Opq7)
2021/04/24(土) 16:54:39.75ID:hh64S9E70 後、稀にあるのが
頭にOption Scriptを書かずに変数宣言で型を付けない奴
はぁ?VBScriptですか?JavaScriptですか?
バカなの?死ぬの?
ってなるのもある
後は比較的軽症なんでそんなに文句垂れるほどじゃないんだけど
変数宣言をIfやFor文の中にその括りで書く人
ああ、何かのObject指向言語やってたのね
とはなるけど、その場合あまりスパゲティソースになっていることが少ないので
ある意味少し安心出来る。
後お客さんが自分で作ったけどよく分からないから直して欲しいと言ってくる奴
これは比較的小さいし面白いことが多いから逆にウエルカムのパターン
まず変数名や関数名が日本語の場合が多い。
まぁこれは別にいい。いや、良くはないけど見てて分かるし。
ただその名称が「豚コマ150g」とか「ハウスバー○モンドカレー」とかになっていると
え、夕食カレーだったの?ジャワやゴールデンじゃ駄目なんですか?ってなる
頭にOption Scriptを書かずに変数宣言で型を付けない奴
はぁ?VBScriptですか?JavaScriptですか?
バカなの?死ぬの?
ってなるのもある
後は比較的軽症なんでそんなに文句垂れるほどじゃないんだけど
変数宣言をIfやFor文の中にその括りで書く人
ああ、何かのObject指向言語やってたのね
とはなるけど、その場合あまりスパゲティソースになっていることが少ないので
ある意味少し安心出来る。
後お客さんが自分で作ったけどよく分からないから直して欲しいと言ってくる奴
これは比較的小さいし面白いことが多いから逆にウエルカムのパターン
まず変数名や関数名が日本語の場合が多い。
まぁこれは別にいい。いや、良くはないけど見てて分かるし。
ただその名称が「豚コマ150g」とか「ハウスバー○モンドカレー」とかになっていると
え、夕食カレーだったの?ジャワやゴールデンじゃ駄目なんですか?ってなる
387デフォルトの名無しさん (ワッチョイ f64f-Opq7)
2021/04/24(土) 17:10:21.36ID:hh64S9E70 >>385
そこは認識の違いだね
まぁ別の言語もやってるせいかも知れないけど
俺の中では単一責任原則に沿って作られていない場合、既にスパゲティコードの臭いを感じとって
つらつらと見て行くと5000行くらいの関数とか作っている時点で少しキレ掛かる
俺の中ではFor Nextの中にGoto文で飛ぶことは構造化言語として組むものとして
既に破綻していることを意味している。
その部分は完全に作り直しにするわ。
そこは認識の違いだね
まぁ別の言語もやってるせいかも知れないけど
俺の中では単一責任原則に沿って作られていない場合、既にスパゲティコードの臭いを感じとって
つらつらと見て行くと5000行くらいの関数とか作っている時点で少しキレ掛かる
俺の中ではFor Nextの中にGoto文で飛ぶことは構造化言語として組むものとして
既に破綻していることを意味している。
その部分は完全に作り直しにするわ。
388デフォルトの名無しさん (ワッチョイ 9b5f-APZP)
2021/04/24(土) 20:41:03.69ID:0Etp2+DY0 そんなレベルじゃ、仕事にならないだろ。
389デフォルトの名無しさん (スププ Sd94-OSX5)
2021/04/24(土) 21:36:02.54ID:rN7nWBsMd 一身上の都合によりIfやForやGoto以下でワザとDimを書く場合もご察しください
390デフォルトの名無しさん (ワッチョイ 1e01-K+SG)
2021/04/24(土) 22:10:18.46ID:S/MxMxKT0 vbaやり始めてから世界が変わった
正直関数じゃマジで簡単なの以外はどうにもならんし
下手に複雑な式作っても気まぐれですぐ消されるし
正直関数じゃマジで簡単なの以外はどうにもならんし
下手に複雑な式作っても気まぐれですぐ消されるし
391デフォルトの名無しさん (ワッチョイ 70da-wusC)
2021/04/24(土) 22:26:59.54ID:4BGM8nym0 そして嫌われるし
392デフォルトの名無しさん (ワッチョイ 1e01-K+SG)
2021/04/25(日) 00:02:34.42ID:trooC9Gj0 特にすごいのが他のアプリの操作機能
今まで月に4時間へばりつかないといけなかったのへばり付かないといけなかったの作業が40分で済む
その間することないからスマホいじるか昼食中に動かしても良い
エクセル神すぎん?
今まで月に4時間へばりつかないといけなかったのへばり付かないといけなかったの作業が40分で済む
その間することないからスマホいじるか昼食中に動かしても良い
エクセル神すぎん?
393デフォルトの名無しさん (ワッチョイ 1e01-K+SG)
2021/04/25(日) 00:03:25.63ID:trooC9Gj0 ごめん誤字
今まで月に4時間へばりつかないといけなかった作業が40分で済む
今まで月に4時間へばりつかないといけなかった作業が40分で済む
394デフォルトの名無しさん (アウアウエー Sa6a-rwsx)
2021/04/25(日) 01:50:00.98ID:RbwSHn/Ua 可読性ゼロの複雑な関数書いて悦に入ってるヤツは無能
395デフォルトの名無しさん (ワッチョイ 2cda-wusC)
2021/04/25(日) 06:48:34.57ID:rqvjO/ad0 本当の地獄はこれから
396デフォルトの名無しさん (ワッチョイ 3af0-3cD6)
2021/04/25(日) 09:13:58.07ID:CqRWqB530 Sub 文字列から日付()
ThisWorkbook.Worksheets("1").Activate
With ActiveSheet
Dim yy As Integer, mm As Integer, dd As Integer
yy = Worksheets("1").Range("A1").Value
mm = Worksheets("1").Range("B1").Value
dd = Worksheets("1").Range("C1").Value
Worksheets("1").Range("B2") = DateSerial(Year:=yy, Month:=mm, Day:=dd)
End With
End Sub
自動でB2の日付が変更するようにしたいのですが
どうしたらいいかわかりません
ActivateではなくChangrイベントだと思いますが
どこにどのように記述したらいいのでしょうか?
ここの先生たちにいつもお世話になってます
初心者にご教授してください
ThisWorkbook.Worksheets("1").Activate
With ActiveSheet
Dim yy As Integer, mm As Integer, dd As Integer
yy = Worksheets("1").Range("A1").Value
mm = Worksheets("1").Range("B1").Value
dd = Worksheets("1").Range("C1").Value
Worksheets("1").Range("B2") = DateSerial(Year:=yy, Month:=mm, Day:=dd)
End With
End Sub
自動でB2の日付が変更するようにしたいのですが
どうしたらいいかわかりません
ActivateではなくChangrイベントだと思いますが
どこにどのように記述したらいいのでしょうか?
ここの先生たちにいつもお世話になってます
初心者にご教授してください
397デフォルトの名無しさん (ワッチョイ 245f-QM0T)
2021/04/25(日) 09:26:59.35ID:4pLy3lS70 ワークシートのDATE関数が手っ取り早い
398デフォルトの名無しさん (ワッチョイ 4642-8KU9)
2021/04/25(日) 10:00:44.54ID:iVVOnnBO0 そもそも文字列を即日付に変換するぐらいなら最初から日付を入力するようにしてたほうが面倒くさくなくていいと思うが
399デフォルトの名無しさん (ワッチョイ 3af0-3cD6)
2021/04/25(日) 10:04:58.97ID:CqRWqB530 DATE関数?
=DATE(A1,A2,A3)
↑これですか?
やってみたのですが、なぜか自動計算されないときがあったので
ユーザーフォームからA1、B1、C1に入力しB2に日付1を表示させ
もう一つA2、B2、C2にもユーザーフォームから入力し日付2を表示させ
日付1から日付2までの期間のすべての日付をD1〜D999に表示したいのですが
初心者過ぎてむずかしいです
=DATE(A1,A2,A3)
↑これですか?
やってみたのですが、なぜか自動計算されないときがあったので
ユーザーフォームからA1、B1、C1に入力しB2に日付1を表示させ
もう一つA2、B2、C2にもユーザーフォームから入力し日付2を表示させ
日付1から日付2までの期間のすべての日付をD1〜D999に表示したいのですが
初心者過ぎてむずかしいです
400デフォルトの名無しさん (アウアウウー Sa08-wusC)
2021/04/25(日) 10:15:36.34ID:eytlE9OXa >>399
閏年が大変だな
閏年が大変だな
401デフォルトの名無しさん (ワッチョイ 3af0-3cD6)
2021/04/25(日) 10:23:41.87ID:CqRWqB530 D999としてますが実際はD7ぐらいしかつかわないので
閏年は考慮しなくても大丈夫です
閏年は考慮しなくても大丈夫です
402デフォルトの名無しさん (ワッチョイ 1e01-K+SG)
2021/04/25(日) 10:27:00.72ID:trooC9Gj0 注意
標準モジュールではなくお目当てのシートモジュールに記載すること
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1:C1")) Is Nothing Or Target.Cells.Count > 3 Then Exit Sub
Application.EnableEvents = False
Dim yy As Integer, mm As Integer, dd As Integer
yy = Range("A1").Value
mm = Range("B1").Value
dd = Range("C1").Value
Range("B2") = DateSerial(Year:=yy, Month:=mm, Day:=dd)
Application.EnableEvents = True
End Sub
標準モジュールではなくお目当てのシートモジュールに記載すること
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1:C1")) Is Nothing Or Target.Cells.Count > 3 Then Exit Sub
Application.EnableEvents = False
Dim yy As Integer, mm As Integer, dd As Integer
yy = Range("A1").Value
mm = Range("B1").Value
dd = Range("C1").Value
Range("B2") = DateSerial(Year:=yy, Month:=mm, Day:=dd)
Application.EnableEvents = True
End Sub
403デフォルトの名無しさん (ワッチョイ 1e01-K+SG)
2021/04/25(日) 10:28:07.28ID:trooC9Gj0 あ、ごめんこれ違うわ
404デフォルトの名無しさん (ワッチョイ 1e01-K+SG)
2021/04/25(日) 10:32:09.85ID:trooC9Gj0 ユーザーフォームは経由は処理が面倒だしエクセルいま手元にないから検証が俺には無理だわ
ただのシート経由ならまだ行けるけど
ただのシート経由ならまだ行けるけど
405デフォルトの名無しさん (ワッチョイ 1e01-K+SG)
2021/04/25(日) 10:36:16.85ID:trooC9Gj0 あとB2への処理がすでに日付と月の入力で重複しとるやん
どうしろと
初心者ならユーザーフォームなんてクソ面倒なもの
使わないほうがいいと思うけど
どうしろと
初心者ならユーザーフォームなんてクソ面倒なもの
使わないほうがいいと思うけど
406デフォルトの名無しさん (ワッチョイ 245f-QM0T)
2021/04/25(日) 10:39:05.26ID:4pLy3lS70 >>399
とりあえずこんな感じかなあ
変数宣言は省略
日付1 = Datesirial(適当に)
日付2 = Datesirial(適当に)
For day = 日付1 To 日付2
R = R + 1
Cell(R , "D").Value = day
Next d
とりあえずこんな感じかなあ
変数宣言は省略
日付1 = Datesirial(適当に)
日付2 = Datesirial(適当に)
For day = 日付1 To 日付2
R = R + 1
Cell(R , "D").Value = day
Next d
407デフォルトの名無しさん (ワッチョイ 245f-QM0T)
2021/04/25(日) 10:40:46.57ID:4pLy3lS70 ↑
Next d ×
Next day ○
Next d ×
Next day ○
408デフォルトの名無しさん (ワッチョイ 1e01-K+SG)
2021/04/25(日) 10:42:21.10ID:trooC9Gj0 For d = 日付1 To 日付2
R = R + 1
Cell(R , "D").Value = d
Next d
R = R + 1
Cell(R , "D").Value = d
Next d
409デフォルトの名無しさん (ワッチョイ 1e01-K+SG)
2021/04/25(日) 10:49:18.11ID:trooC9Gj0 修正
columns("d").clearcontents
日付1 = Datesirial(適当に)
日付2 = Datesirial(適当に)
For d = 日付1 To 日付2
R = R + 1
Cells(R , "D").Value = d
Next d
columns("d").clearcontents
日付1 = Datesirial(適当に)
日付2 = Datesirial(適当に)
For d = 日付1 To 日付2
R = R + 1
Cells(R , "D").Value = d
Next d
410デフォルトの名無しさん (ワッチョイ 3af0-3cD6)
2021/04/25(日) 10:58:25.82ID:CqRWqB530 >>406
アドバイスありがとうございます!
初心者なのですが業務上ユーザーフォームを使わなければならなくて(泣
Private Sub Worksheet_Change(ByVal Target As Range)
Dim 日付1 As Integer, 日付2 As Integer
日付1 = Datesirial(適当に)
日付2 = Datesirial(適当に)
For day = 日付1 To 日付2
R = R + 1
Cell(R , "D").Value = day
Next d
End Sub
↑こんな感じでしょうか?初心者すぎて変数宣言とかむずかしいです
アドバイスありがとうございます!
初心者なのですが業務上ユーザーフォームを使わなければならなくて(泣
Private Sub Worksheet_Change(ByVal Target As Range)
Dim 日付1 As Integer, 日付2 As Integer
日付1 = Datesirial(適当に)
日付2 = Datesirial(適当に)
For day = 日付1 To 日付2
R = R + 1
Cell(R , "D").Value = day
Next d
End Sub
↑こんな感じでしょうか?初心者すぎて変数宣言とかむずかしいです
411デフォルトの名無しさん (ワッチョイ 1e01-K+SG)
2021/04/25(日) 11:09:05.98ID:trooC9Gj0 まずあの上の命令はWorksheet changeじゃなくてユーザーフォームに書き込む
ユーザーフォームを作らないといけないけど、適当に欄作って
その空欄へ
a1からc2の内容をすべて転記しないといせない
ユーザーフォームの変更があったら逆にa1-c2へ反映
その上で入力用のユーザーフォームをどうにかして表示するところからスタートだね
絶対面倒くさい
ユーザーフォームを作らないといけないけど、適当に欄作って
その空欄へ
a1からc2の内容をすべて転記しないといせない
ユーザーフォームの変更があったら逆にa1-c2へ反映
その上で入力用のユーザーフォームをどうにかして表示するところからスタートだね
絶対面倒くさい
412デフォルトの名無しさん (ワッチョイ 3af0-3cD6)
2021/04/25(日) 11:14:02.50ID:CqRWqB530 ユーザーフォームからA1、B1、C1に入力しB2に日付1を表示させ
もう一つA2、B2、C2にもユーザーフォームから入力し日付2を表示させ
日付1から日付2までの期間のすべての日付をD1〜D7に表示したいのですが
初心者過ぎてむずかしいです
↑ユーザーフォーム経由じゃなくても
上記のようなエクセル表を作りたいのですが
簡単な方法ありますか?
もう一つA2、B2、C2にもユーザーフォームから入力し日付2を表示させ
日付1から日付2までの期間のすべての日付をD1〜D7に表示したいのですが
初心者過ぎてむずかしいです
↑ユーザーフォーム経由じゃなくても
上記のようなエクセル表を作りたいのですが
簡単な方法ありますか?
413デフォルトの名無しさん (ワッチョイ 245f-QM0T)
2021/04/25(日) 11:14:40.82ID:4pLy3lS70414デフォルトの名無しさん (ワッチョイ 1e01-K+SG)
2021/04/25(日) 11:16:40.69ID:trooC9Gj0 変数名がdayだとvbaの標準命令のday(シリアル値)とかぶるからエラー起こさない?
415350 (アウアウウー Sa83-jiG2)
2021/04/25(日) 11:25:35.70ID:kagSPvTda 予約語じゃなく関数名だから大丈夫じゃないかな
ただ、関数を書いたときに頭文字が小文字になったり嫌だから避けるかな
ただ、関数を書いたときに頭文字が小文字になったり嫌だから避けるかな
416デフォルトの名無しさん (ワッチョイ 245f-hDy1)
2021/04/25(日) 11:39:20.76ID:4pLy3lS70417350 (アウアウウー Sa83-jiG2)
2021/04/25(日) 11:40:49.20ID:kagSPvTda 試してみると、同一スコープ内だと
Dim day As Long
day = VBA.day(Now())
Debug.Print day
のように関数名を修飾しないとでした
当たり前か
Dim day As Long
day = VBA.day(Now())
Debug.Print day
のように関数名を修飾しないとでした
当たり前か
418デフォルトの名無しさん (ワッチョイ 3af0-3cD6)
2021/04/25(日) 12:09:23.12ID:CqRWqB530 Private Sub Worksheet_Change(ByVal Target As Range)
Dim 日付1 As Long Integer, 日付2 As Integer
日付1 = Datesirial(適当に)
日付2 = Datesirial(適当に)
For day = 日付1 To 日付2
Dim R As Long
R = R + 1
Cell(R , "D").Value = day
Next day
End Sub
こんな感じでしょうか?
Dim 日付1 As Long Integer, 日付2 As Integer
日付1 = Datesirial(適当に)
日付2 = Datesirial(適当に)
For day = 日付1 To 日付2
Dim R As Long
R = R + 1
Cell(R , "D").Value = day
Next day
End Sub
こんな感じでしょうか?
419デフォルトの名無しさん (アウアウウー Sa08-wusC)
2021/04/25(日) 12:12:35.21ID:eytlE9OXa 変数に日付1とかやるならdayも日付でよくね
420デフォルトの名無しさん (ワッチョイ 3af0-3cD6)
2021/04/25(日) 12:36:35.37ID:CqRWqB530 Private Sub Worksheet_Change(ByVal Target As Range)
Dim 日付1 As Long Integer, 日付2 As Integer
日付1 = Datesirial(適当に)
日付2 = Datesirial(適当に)
For day = 日付1 To 日付2
Dim R As Long
R = R + 1
Cell(R , "D").Value = day
Next day
End Sub
Changeしたいシートに記述してみたんですけど構文エラーになりました
Dim 日付1 As Long Integer, 日付2 As Integer
日付1 = Datesirial(適当に)
日付2 = Datesirial(適当に)
For day = 日付1 To 日付2
Dim R As Long
R = R + 1
Cell(R , "D").Value = day
Next day
End Sub
Changeしたいシートに記述してみたんですけど構文エラーになりました
421デフォルトの名無しさん (ワッチョイ 1e01-K+SG)
2021/04/25(日) 12:41:57.46ID:trooC9Gj0 適当にってのは自分で好きな変数に書き換えろってことだぞ…
あとapplication.enableevents=falseにしないと無限ループになるぞ
処理後はtrue
あとdimをループの中に入れないで
詳しくはググって
あとapplication.enableevents=falseにしないと無限ループになるぞ
処理後はtrue
あとdimをループの中に入れないで
詳しくはググって
422デフォルトの名無しさん (ワッチョイ 1e01-K+SG)
2021/04/25(日) 12:43:38.04ID:trooC9Gj0 あと
If Intersect(Target, Range("A1:C2")) Is Nothing Or Target.Cells.Count > 6 Then Exit Sub
こういうようなのを冒頭に入れないと、どこに何を入れても命令が実行されるから遅くなる
If Intersect(Target, Range("A1:C2")) Is Nothing Or Target.Cells.Count > 6 Then Exit Sub
こういうようなのを冒頭に入れないと、どこに何を入れても命令が実行されるから遅くなる
423デフォルトの名無しさん (アウアウウー Sa83-jiG2)
2021/04/25(日) 12:59:50.89ID:kagSPvTda 結果として上手くいっているのかもしれないけど、
R がループ内で宣言されていると、毎回初期化を期待しているみたいでイヤですね
この場合、R の宣言はプロシジャの先頭にあるものとみなされるのだろうけど
R がループ内で宣言されていると、毎回初期化を期待しているみたいでイヤですね
この場合、R の宣言はプロシジャの先頭にあるものとみなされるのだろうけど
424デフォルトの名無しさん (ワッチョイ 3af0-3cD6)
2021/04/25(日) 13:05:39.55ID:CqRWqB530 Private Sub Worksheet_Change(ByVal Target As Range)
application.enableevents=false
If Intersect(Target, Range("A1:C2")) Is Nothing Or Target.Cells.Count > 6 Then Exit Sub
Dim 日付1 As Long Integer, 日付2 As Integer
日付1 = Datesirial(Long)
日付2 = Datesirial(Long)
For day = 日付1 To 日付2
Dim R As Long
R = R + 1
Cell(R , "D").Value = day
Next day
End Sub
↑こんな感じでしょうか?
初心者すぎてすいません(汗
application.enableevents=false
If Intersect(Target, Range("A1:C2")) Is Nothing Or Target.Cells.Count > 6 Then Exit Sub
Dim 日付1 As Long Integer, 日付2 As Integer
日付1 = Datesirial(Long)
日付2 = Datesirial(Long)
For day = 日付1 To 日付2
Dim R As Long
R = R + 1
Cell(R , "D").Value = day
Next day
End Sub
↑こんな感じでしょうか?
初心者すぎてすいません(汗
425デフォルトの名無しさん (ワッチョイ 1e01-K+SG)
2021/04/25(日) 13:12:30.82ID:trooC9Gj0 エナブルイベントの場所が違う
exti subのあとにエナブル入れるべきだし
命令終了後にエナブルイベントをtrueにしないとチェンジイベントが実行されなくなる
dateserialの構文はそもそも(変数年、変数月、変数日)
ロングとかいう変数型をぶちこまれても困っちゃうのでは
いっそダイレクトに日付1=(range("a1"),range("b1"),range("c1"))
とかにしてもいいかもね
とりあえず命令一個一個を自分で調べてから実行しないと身にならないよ
exti subのあとにエナブル入れるべきだし
命令終了後にエナブルイベントをtrueにしないとチェンジイベントが実行されなくなる
dateserialの構文はそもそも(変数年、変数月、変数日)
ロングとかいう変数型をぶちこまれても困っちゃうのでは
いっそダイレクトに日付1=(range("a1"),range("b1"),range("c1"))
とかにしてもいいかもね
とりあえず命令一個一個を自分で調べてから実行しないと身にならないよ
426デフォルトの名無しさん (ワッチョイ 1e01-K+SG)
2021/04/25(日) 13:16:06.52ID:trooC9Gj0 間違えた
日付1=dateserial(range("a1"),range("b1"),range("c1"))
そもそもcellはスペルミスだからcellsじゃないと実行されないと思う
Cellsなどの命令は頭文字が大文字、残りは少文字になるはずだから、そうならないならスペルミスを疑ったほうが良い
日付1=dateserial(range("a1"),range("b1"),range("c1"))
そもそもcellはスペルミスだからcellsじゃないと実行されないと思う
Cellsなどの命令は頭文字が大文字、残りは少文字になるはずだから、そうならないならスペルミスを疑ったほうが良い
427デフォルトの名無しさん (ワッチョイ 3af0-3cD6)
2021/04/25(日) 13:37:02.20ID:CqRWqB530 Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1:C2")) Is Nothing Or Target.Cells.Count > 6 Then Exit Sub
application.enableevents=false
Dim 日付1 As Long Integer, 日付2 As Integer
日付1 = dateserial(range("a1"),range("b1"),range("c1"))
日付2 = dateserial(range("a2"),range("b2"),range("c2"))
For day = 日付1 To 日付2
Dim R As Long
R = R + 1
Cell(R , "D").Value = day
Next day
End Sub
こんな感じでしょうか?
エナブルイベントについてググってみます
If Intersect(Target, Range("A1:C2")) Is Nothing Or Target.Cells.Count > 6 Then Exit Sub
application.enableevents=false
Dim 日付1 As Long Integer, 日付2 As Integer
日付1 = dateserial(range("a1"),range("b1"),range("c1"))
日付2 = dateserial(range("a2"),range("b2"),range("c2"))
For day = 日付1 To 日付2
Dim R As Long
R = R + 1
Cell(R , "D").Value = day
Next day
End Sub
こんな感じでしょうか?
エナブルイベントについてググってみます
428デフォルトの名無しさん (ワッチョイ 1e01-K+SG)
2021/04/25(日) 13:39:40.44ID:trooC9Gj0 application.enableevents=trueをさいごにつけてくれ
あとdim r as longの宣言は日付と一緒におこなって
あとdim r as longの宣言は日付と一緒におこなって
429デフォルトの名無しさん (ワッチョイ 3af0-3cD6)
2021/04/25(日) 13:44:43.40ID:CqRWqB530 Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1:C2")) Is Nothing Or Target.Cells.Count > 6 Then Exit Sub
application.enableevents=false
Dim 日付1 As Long Integer, 日付2 As Integer
日付1 = dateserial(range("a1"),range("b1"),range("c1"))
日付2 = dateserial(range("a2"),range("b2"),range("c2"))
For day = 日付1 To 日付2
Dim R As Long
R = R + 1
Cell(R , "D").Value = day
Next day
application.enableevents=true
End Sub
>>あとdim r as longの宣言は日付と一緒におこなって
↑まったくわかりません(泣
If Intersect(Target, Range("A1:C2")) Is Nothing Or Target.Cells.Count > 6 Then Exit Sub
application.enableevents=false
Dim 日付1 As Long Integer, 日付2 As Integer
日付1 = dateserial(range("a1"),range("b1"),range("c1"))
日付2 = dateserial(range("a2"),range("b2"),range("c2"))
For day = 日付1 To 日付2
Dim R As Long
R = R + 1
Cell(R , "D").Value = day
Next day
application.enableevents=true
End Sub
>>あとdim r as longの宣言は日付と一緒におこなって
↑まったくわかりません(泣
430デフォルトの名無しさん (ワッチョイ 1e01-K+SG)
2021/04/25(日) 14:00:05.29ID:trooC9Gj0 変数宣言の意味がわからないなら
dim系の命令はいっそ全部消しても良いかもね
よくみたら
Dim 日付1 As Long Integer, 日付2 As Integer
ロングインテガーとかいうわけわからん型にしてるし
dim系の命令はいっそ全部消しても良いかもね
よくみたら
Dim 日付1 As Long Integer, 日付2 As Integer
ロングインテガーとかいうわけわからん型にしてるし
431デフォルトの名無しさん (ワッチョイ 3af0-3cD6)
2021/04/25(日) 14:15:56.57ID:CqRWqB530 Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1:C2")) Is Nothing Or Target.Cells.Count > 6 Then Exit Sub
application.enableevents=false
Worksheets("1").Range("D1")= dateserial(range("a1"),range("b1"),range("c1"))
Worksheets("1").Range("D2") = dateserial(range("a2"),range("b2"),range("c2"))
End Sub
こんな感じでしょうか?
If Intersect(Target, Range("A1:C2")) Is Nothing Or Target.Cells.Count > 6 Then Exit Sub
application.enableevents=false
Worksheets("1").Range("D1")= dateserial(range("a1"),range("b1"),range("c1"))
Worksheets("1").Range("D2") = dateserial(range("a2"),range("b2"),range("c2"))
End Sub
こんな感じでしょうか?
432デフォルトの名無しさん (ワッチョイ 1e01-K+SG)
2021/04/25(日) 14:43:47.53ID:trooC9Gj0 なんでループまで消した!
433デフォルトの名無しさん (ワッチョイ 3af0-3cD6)
2021/04/25(日) 14:48:07.76ID:CqRWqB530 Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1:C2")) Is Nothing Or Target.Cells.Count > 6 Then Exit Sub
application.enableevents=false
Worksheets("1").Range("D1")= dateserial(range("a1"),range("b1"),range("c1"))
Worksheets("1").Range("D2") = dateserial(range("a2"),range("b2"),range("c2"))
R = R + 1
Cell(R , "D").Value = day
Next day
End Sub
こんな感じでしょうか?
If Intersect(Target, Range("A1:C2")) Is Nothing Or Target.Cells.Count > 6 Then Exit Sub
application.enableevents=false
Worksheets("1").Range("D1")= dateserial(range("a1"),range("b1"),range("c1"))
Worksheets("1").Range("D2") = dateserial(range("a2"),range("b2"),range("c2"))
R = R + 1
Cell(R , "D").Value = day
Next day
End Sub
こんな感じでしょうか?
434デフォルトの名無しさん (アウアウウー Sa08-wusC)
2021/04/25(日) 15:14:07.43ID:c8qfwm7na どうせカッコが全角とかじゃね
435デフォルトの名無しさん (ワッチョイ 1e01-K+SG)
2021/04/25(日) 15:22:01.39ID:trooC9Gj0 あーもう
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1:C2")) Is Nothing Or Target.Cells.Count > 6 Then Exit Sub
application.enableevents=false
日付1 = dateserial(range("a1"),range("b1"),range("c1"))
日付2 = dateserial(range("a2"),range("b2"),range("c2"))
For 日付 = 日付1 To 日付2
R = R + 1
Cell(R , "D").Value = 日付
Next
application.enableevents=true
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1:C2")) Is Nothing Or Target.Cells.Count > 6 Then Exit Sub
application.enableevents=false
日付1 = dateserial(range("a1"),range("b1"),range("c1"))
日付2 = dateserial(range("a2"),range("b2"),range("c2"))
For 日付 = 日付1 To 日付2
R = R + 1
Cell(R , "D").Value = 日付
Next
application.enableevents=true
End Sub
436デフォルトの名無しさん (ワッチョイ 1e01-K+SG)
2021/04/25(日) 15:24:13.50ID:trooC9Gj0 間違えた
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1:C2")) Is Nothing Or Target.Cells.Count > 6 Then Exit Sub
columns("d").clearcontents
application.enableevents=false
日付1 = dateserial(range("a1"),range("b1"),range("c1"))
日付2 = dateserial(range("a2"),range("b2"),range("c2"))
For 日付 = 日付1 To 日付2
R = R + 1
Cells(R , "D") = 日付
Next
application.enableevents=true
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1:C2")) Is Nothing Or Target.Cells.Count > 6 Then Exit Sub
columns("d").clearcontents
application.enableevents=false
日付1 = dateserial(range("a1"),range("b1"),range("c1"))
日付2 = dateserial(range("a2"),range("b2"),range("c2"))
For 日付 = 日付1 To 日付2
R = R + 1
Cells(R , "D") = 日付
Next
application.enableevents=true
End Sub
437デフォルトの名無しさん (ワッチョイ 3af0-3cD6)
2021/04/25(日) 15:32:25.96ID:CqRWqB530 >>436
すごい!!
できました!
コードを見て
私がが2ヶ月かかっても出来ないわけですね
こんなむずかしいことに挑戦していたなんて・・・
これからも勉強していつかは人に教えれるようになりたいです。
感謝!!
すごい!!
できました!
コードを見て
私がが2ヶ月かかっても出来ないわけですね
こんなむずかしいことに挑戦していたなんて・・・
これからも勉強していつかは人に教えれるようになりたいです。
感謝!!
438デフォルトの名無しさん (ワッチョイ 4b63-Z8j5)
2021/04/25(日) 15:36:23.25ID:xxLFjq7K0 いつかじゃなくて今すぐ人に教えられるように理解しろ
439デフォルトの名無しさん (ワッチョイ 3af0-3cD6)
2021/04/25(日) 15:37:54.87ID:CqRWqB530440デフォルトの名無しさん (ワッチョイ 70da-wusC)
2021/04/25(日) 17:53:19.26ID:K6WUBqIf0 なんでいつもそんなに上から目線でマウント取ってくるの?
人格破綻者なの??
人格破綻者なの??
441デフォルトの名無しさん (ワッチョイ 968e-iMGS)
2021/04/25(日) 18:16:22.33ID:vAt0cvBk0 いつものあいつだろ
442デフォルトの名無しさん (アウアウウー Sab5-4hJQ)
2021/04/25(日) 18:20:31.60ID:nATm0Zraa なになに役人のつくる書類よりはよほどまし
18ページ手前に書き込む内容が
3ページ後にアドレスをみなから手計算しなければならん
おなじページに書けないのか
こんなのが延々 50ページぐらい続く
ひどいスパゲッテイだよ
18ページ手前に書き込む内容が
3ページ後にアドレスをみなから手計算しなければならん
おなじページに書けないのか
こんなのが延々 50ページぐらい続く
ひどいスパゲッテイだよ
443デフォルトの名無しさん (アウアウウー Sab5-4hJQ)
2021/04/25(日) 18:33:35.35ID:nATm0Zraa 確定申告がこんなひといスパゲッテイだったとは
444デフォルトの名無しさん (ワッチョイ 2cda-On6t)
2021/04/25(日) 18:36:11.53ID:rqvjO/ad0 上から目線でマウントとる人は人格破綻者なのかw
445デフォルトの名無しさん (スッップ Sd70-l6c2)
2021/04/25(日) 21:25:32.74ID:n+Zq8N/Kd >>386
流石に多少やってる奴なら頭に書くのがそれじゃないと知ってる筈だが。
流石に多少やってる奴なら頭に書くのがそれじゃないと知ってる筈だが。
446デフォルトの名無しさん (ワッチョイ f64f-Opq7)
2021/04/25(日) 23:44:44.33ID:B0d72kDU0447デフォルトの名無しさん (ワッチョイ 70da-wusC)
2021/04/26(月) 01:31:30.42ID:0lQeMWYV0 牧野ここにも出没してんか?
暇なのか?あ?
暇なのか?あ?
448デフォルトの名無しさん (ワッチョイ a868-8KU9)
2021/04/26(月) 06:59:23.61ID:lovLRBcK0 だっさw
449デフォルトの名無しさん (ワッチョイ 70da-iXMK)
2021/04/26(月) 16:06:49.39ID:0lQeMWYV0 牧野の人気に嫉妬してるからよ
450デフォルトの名無しさん (アウアウウー Sa30-rqav)
2021/04/26(月) 16:38:43.84ID:g9sbyhzRa どなたかGetOpenFilenameでカレントディレクトリが変更されるの何とかできませんか?
構造体はさっぱり分からんのです
構造体はさっぱり分からんのです
451デフォルトの名無しさん (ワッチョイ bd10-aESV)
2021/04/26(月) 17:20:54.81ID:z51HLtPU0 元のアクティブブックを変数にして
戻せばいいだけだろう
どうせブック複数いじるなら変数のが便利だし
戻せばいいだけだろう
どうせブック複数いじるなら変数のが便利だし
452デフォルトの名無しさん (アウアウウー Sa30-rqav)
2021/04/26(月) 17:49:31.38ID:g9sbyhzRa453デフォルトの名無しさん (ワッチョイ f64f-Opq7)
2021/04/26(月) 17:52:36.88ID:Fs15ZcA/0 これ追加すりゃいいんじゃないの?
ChDir ThisWorkbook.Path
自ブックのパスがいやなら
設定用シートでも作っといて
そこに参照したいパス書いといて
それをChDirに設定しとけば?
ChDir ThisWorkbook.Path
自ブックのパスがいやなら
設定用シートでも作っといて
そこに参照したいパス書いといて
それをChDirに設定しとけば?
454デフォルトの名無しさん (アウアウウー Sa30-rqav)
2021/04/26(月) 18:05:41.03ID:g9sbyhzRa いや、それがダメなんですよね
chdirで設定したあとGetOpenFilenameを実行するとカレントディレクトリが変わって、で初期フォルダがあらぬ所に設定される
直前直後でdebug.print curdir入れて確認してるから、間違いなくGetOpenFilenameの段階で変更されてる……と思う?
ユーザーフォーム上に置いて繰り返し実行してるけど、どうやら1回目に開いたダイアログを変更すると、変更先のディレクトリを覚えて、次から勝手にそこに変えてくれているみたい
chdirで設定したあとGetOpenFilenameを実行するとカレントディレクトリが変わって、で初期フォルダがあらぬ所に設定される
直前直後でdebug.print curdir入れて確認してるから、間違いなくGetOpenFilenameの段階で変更されてる……と思う?
ユーザーフォーム上に置いて繰り返し実行してるけど、どうやら1回目に開いたダイアログを変更すると、変更先のディレクトリを覚えて、次から勝手にそこに変えてくれているみたい
455デフォルトの名無しさん (ワッチョイ 245f-QM0T)
2021/04/26(月) 18:10:37.42ID:qBKi4u1A0 それネットワークドライブ?
456デフォルトの名無しさん (アウアウウー Sa30-rqav)
2021/04/26(月) 18:15:43.70ID:g9sbyhzRa いや、Cです
457デフォルトの名無しさん (アウアウウー Sab5-4hJQ)
2021/04/26(月) 18:27:36.92ID:QRSOMQKpa chdirは古いコマンドだから、なにかエラー出しているのかも
458デフォルトの名無しさん (ワッチョイ ac49-8Khg)
2021/04/26(月) 18:58:56.85ID:+pOfqz7u0 カレントディレクトリを復元する際は、ChDriveとChDirをちゃんと両方やれよ
459デフォルトの名無しさん (ワッチョイ 412f-42zS)
2021/04/26(月) 19:19:25.15ID:/WVOYzSd0 問題がよくわからん
GetOpenFilename実行後にカレントディレクトリが変更されるって話なのか?
だったら実行後に戻せって話
GetOpenFilenameでカレントが変更されるのはヘルプにも明示された仕様だからどうしようもない
GetOpenFilenameの初期値がカレントディレクトリにならんって話なのか?
だったらまずコード曝せ
GetOpenFilename実行後にカレントディレクトリが変更されるって話なのか?
だったら実行後に戻せって話
GetOpenFilenameでカレントが変更されるのはヘルプにも明示された仕様だからどうしようもない
GetOpenFilenameの初期値がカレントディレクトリにならんって話なのか?
だったらまずコード曝せ
460デフォルトの名無しさん (スップ Sd02-On6t)
2021/04/26(月) 21:18:48.90ID:Qb9oKWtLd ステップ実行でChDirとかGetOpenFilenameの引数を全部チェックしたか?
461デフォルトの名無しさん (ワッチョイ a868-8KU9)
2021/04/26(月) 22:36:46.66ID:lovLRBcK0 今の子はもうカレントディレクトリ自体が謎仕様なのか
462デフォルトの名無しさん (ワッチョイ 154f-0NDc)
2021/04/26(月) 23:20:39.12ID:xr7wJCbA0 >>376だけど実引数がVariant型の参照渡しなら仮引数はカッコ付きのVariant型にできるのね
理由がよく分からないけど
配列のVariant型を引数にしたときの指定方法をパターン化したいんだけど全くわからん
理由がよく分からないけど
配列のVariant型を引数にしたときの指定方法をパターン化したいんだけど全くわからん
463デフォルトの名無しさん (ワッチョイ ac49-8Khg)
2021/04/26(月) 23:57:08.69ID:+pOfqz7u0 >>462
配列は配列の参照で受け渡すことが基本で、それはVariant型も同じ。
ただしVariant型は配列を格納できる。
Variant型の配列という意味ではなく、ひとつのVariant型の変数の中に
配列を格納できる。そこから考えてみたらいいと思うよ。
配列は配列の参照で受け渡すことが基本で、それはVariant型も同じ。
ただしVariant型は配列を格納できる。
Variant型の配列という意味ではなく、ひとつのVariant型の変数の中に
配列を格納できる。そこから考えてみたらいいと思うよ。
464デフォルトの名無しさん (ワッチョイ 154f-0NDc)
2021/04/27(火) 00:36:34.29ID:9wjO2iUR0465デフォルトの名無しさん (ワッチョイ bd10-y5Lq)
2021/04/27(火) 01:04:32.91ID:mgRy5CVU0 中身のない()つけたら動的と勘違いするだろ
466デフォルトの名無しさん (アウアウウー Sa30-rqav)
2021/04/27(火) 10:18:38.80ID:5d+cCuuaa >>459
2つ目と3つ目
ごめんなさい色々やって自決しました。変更先のフォルダ名にセミコロンが入ってたのがまずかったみたい。
どうしようもないので今回は諦めて違うことをします。お手数おかけしました。
2つ目と3つ目
ごめんなさい色々やって自決しました。変更先のフォルダ名にセミコロンが入ってたのがまずかったみたい。
どうしようもないので今回は諦めて違うことをします。お手数おかけしました。
467デフォルトの名無しさん (ワッチョイ 412f-42zS)
2021/04/27(火) 10:32:17.76ID:KMwaQK/30 >466
自決ってお前w
自決ってお前w
468デフォルトの名無しさん (ワッチョイ 412f-42zS)
2021/04/27(火) 10:51:44.25ID:KMwaQK/30 >>466
ちょっと試したけど、たしかにカレントディレクトリにセミコロンとか入ってると
そこが初期位置にならんな
カレントディレクトリを8.3形式で指定したらイケルっぽいぞ
いまさら直る気がせんが気になるならマイクロソフトに報告してみ
ちょっと試したけど、たしかにカレントディレクトリにセミコロンとか入ってると
そこが初期位置にならんな
カレントディレクトリを8.3形式で指定したらイケルっぽいぞ
いまさら直る気がせんが気になるならマイクロソフトに報告してみ
469デフォルトの名無しさん (アウアウエー Sa66-qRZI)
2021/04/27(火) 19:06:09.30ID:Xk0sjNEua ここではもうとっくにエラー429については議論され尽くしましたか?
初心者なのですが、file system objectを読もうとしたらアクティブXがそれはできませんと出て、どうしてよいやら
初心者なのですが、file system objectを読もうとしたらアクティブXがそれはできませんと出て、どうしてよいやら
470デフォルトの名無しさん (ワッチョイ 1e01-K+SG)
2021/04/27(火) 19:49:18.21ID:vIQbS3UC0 そんな用語使う初心者がいるか!
471デフォルトの名無しさん (アウアウエー Sa66-qRZI)
2021/04/27(火) 20:05:11.09ID:Xk0sjNEua え?
472デフォルトの名無しさん (ワッチョイ a868-8KU9)
2021/04/27(火) 20:33:52.91ID:Fi83YJTP0 な?
473デフォルトの名無しさん (ワッチョイ 245f-QM0T)
2021/04/27(火) 20:40:43.33ID:ecHnxSib0 り?
474デフォルトの名無しさん (ワッチョイ 8463-On6t)
2021/04/27(火) 20:45:59.35ID:UpvbOzN+0 ほんぎゅろげええええええええ
475デフォルトの名無しさん (JP 0H7d-0NDc)
2021/04/27(火) 23:48:49.38ID:9wjO2iURH 通常の=での代入でもVariantの()で宣言した変数には配列が入らないんだね
Range型の複数セルが代入できるので勘違いしてた
Range型が返す配列はVariant型だからできるっぽい?
Variant型の()付き変数は配列じゃなければどんな意味があるのか?
Range型の複数セルが代入できるので勘違いしてた
Range型が返す配列はVariant型だからできるっぽい?
Variant型の()付き変数は配列じゃなければどんな意味があるのか?
476デフォルトの名無しさん (ワッチョイ 245f-QM0T)
2021/04/28(水) 00:12:42.15ID:wZLkUEzX0 どんだけこだわるのよ
477デフォルトの名無しさん (ワッチョイ 8463-On6t)
2021/04/28(水) 00:34:41.28ID:oMne/ugv0 自分は好き勝手やってるのに俺らだけ奴隷労働しろと
ちょっとでも目立つのが気に入らんと
ちょっとでも目立つのが気に入らんと
478デフォルトの名無しさん (ワッチョイ 70da-iXMK)
2021/04/28(水) 02:49:41.12ID:R/cV679Q0 他人の事情なんか配慮しないのがデキるプログラマー
479デフォルトの名無しさん (ワッチョイ b701-Bsub)
2021/04/28(水) 03:25:04.10ID:yYRagbWx0 >>475
Variantの()で宣言した変数はVariant配列型の変数で、Valueの戻り値もちゃんと代入できるよ
ただし複数セルを参照しててValueが二次元配列を返すときに限る
一つのセルだけしか参照してない場合は配列を返さないので型不一致になる
Variantの()で宣言した変数はVariant配列型の変数で、Valueの戻り値もちゃんと代入できるよ
ただし複数セルを参照しててValueが二次元配列を返すときに限る
一つのセルだけしか参照してない場合は配列を返さないので型不一致になる
480デフォルトの名無しさん (ワッチョイ a868-8KU9)
2021/04/28(水) 05:59:25.47ID:OKDjIMLh0 そういやvbaの配列は、
・配列じゃない値
・countが1の配列
これが微妙に違っていた気がする
・配列じゃない値
・countが1の配列
これが微妙に違っていた気がする
481デフォルトの名無しさん (JP 0H98-On6t)
2021/04/28(水) 07:14:02.38ID:X/WADpVMH482デフォルトの名無しさん (アウアウウー Sa08-iXMK)
2021/04/28(水) 12:09:24.67ID:Jq2bf8XLa 配列にはいれっ
483デフォルトの名無しさん (アウアウウー Sa30-rqav)
2021/04/28(水) 13:41:38.64ID:K3oXR9qNa 変数を反芻
484デフォルトの名無しさん (ワッチョイ ac49-8Khg)
2021/04/28(水) 14:02:46.34ID:GqNxFOs40 Excelのオブジェクトを操作したときの動きからVBAの仕様を推測して
混乱してるように見えるな。質問スレじゃなくて、VBAについて教えて
くれる人や本やサイトを探した方がいいんじゃないか。
混乱してるように見えるな。質問スレじゃなくて、VBAについて教えて
くれる人や本やサイトを探した方がいいんじゃないか。
485デフォルトの名無しさん (アウアウウー Sab5-4hJQ)
2021/04/28(水) 19:07:20.75ID:fsi6lQwja ベテランの初心者がきました
よろぴく
よろぴく
486デフォルトの名無しさん (アウアウエー Sa66-qRZI)
2021/04/28(水) 19:31:32.06ID:xYFjFFNHa エラー429は自力で解決したのでもういいです。
487デフォルトの名無しさん (アウアウエー Sa66-qRZI)
2021/04/28(水) 19:41:38.21ID:xYFjFFNHa 理由はただの書き間違いでした。
488デフォルトの名無しさん (ラクッペペ MM34-4uvq)
2021/04/28(水) 19:45:56.67ID:Sz6ocakQM 429 = 死肉
489デフォルトの名無しさん (ワッチョイ 154f-DhNu)
2021/04/28(水) 23:01:14.39ID:gO4+NyeW0 >>479
Variant型の配列っていうのがあるんだね
配列でないVariant型ならデータが入っていればVariant型ではない(代入した型に変換される)
だからデータが入っているVariant型の配列って無いと思ってた
これ以上は切りが無くなりそうなので止めます
ありがとう
Variant型の配列っていうのがあるんだね
配列でないVariant型ならデータが入っていればVariant型ではない(代入した型に変換される)
だからデータが入っているVariant型の配列って無いと思ってた
これ以上は切りが無くなりそうなので止めます
ありがとう
490デフォルトの名無しさん (ワッチョイ bd10-y5Lq)
2021/04/29(木) 02:21:41.91ID:EFUE1W1F0 最初から配列であることを宣言した場合と、
Variantに配列をぶっこんだ場合は、
区別しないといけない
Variantに配列をぶっこんだ場合は、
区別しないといけない
491デフォルトの名無しさん (ワッチョイ f64f-Opq7)
2021/04/29(木) 03:35:54.80ID:xPFf86S80 Variant型は調べれば調べるほど「???」ってなるから気をつけて
VB.Netでは廃止されたくらいの型だから
俺も最初調べててVariant型って内部型とか持ってるし
代入したものの参照でも抱えているだけのものと高を括ってたけど
Variant型の配列を作ってある要素には値型、ある要素には参照型を設定して関数の引数に値渡しで渡すと
きちんと値型の部分は値が、参照型の部分は参照が渡されるのは少し前にレスした通り
そもそも何で配列の値渡しは出来ないのにVariant型に入れると値渡しが出来るような思想で作られているのかも謎。そういうものだと思う他ない。
VBAがObject指向に片足を突っ込んでいるところで止まっているせいか、Objectでもそうでないものも代入出来る型として存在していて使い勝手が良い反面、
コンパイル時に内部型が違う場合でもエラーにならないから実行時に初めてエラーとなって気がついたり、
違う型のものを上書いてしまってエラーとならずに期待した挙動と変わってしまう場合が出て来る恐ろしい型でもある。
Variant型を使うなとは言えないけど
使う際にはその特性と挙動を十分把握していないと、ちょっと何か変わったことをしただけで期待した結果が得られないことになり得るから十分気をつけてね。
VB.Netでは廃止されたくらいの型だから
俺も最初調べててVariant型って内部型とか持ってるし
代入したものの参照でも抱えているだけのものと高を括ってたけど
Variant型の配列を作ってある要素には値型、ある要素には参照型を設定して関数の引数に値渡しで渡すと
きちんと値型の部分は値が、参照型の部分は参照が渡されるのは少し前にレスした通り
そもそも何で配列の値渡しは出来ないのにVariant型に入れると値渡しが出来るような思想で作られているのかも謎。そういうものだと思う他ない。
VBAがObject指向に片足を突っ込んでいるところで止まっているせいか、Objectでもそうでないものも代入出来る型として存在していて使い勝手が良い反面、
コンパイル時に内部型が違う場合でもエラーにならないから実行時に初めてエラーとなって気がついたり、
違う型のものを上書いてしまってエラーとならずに期待した挙動と変わってしまう場合が出て来る恐ろしい型でもある。
Variant型を使うなとは言えないけど
使う際にはその特性と挙動を十分把握していないと、ちょっと何か変わったことをしただけで期待した結果が得られないことになり得るから十分気をつけてね。
492デフォルトの名無しさん (ワッチョイ f64f-Opq7)
2021/04/29(木) 03:54:38.48ID:xPFf86S80 余談だけど他の言語にも
例えばJavaScriptやC#には変数宣言する際に、型にvarって宣言することがあるけど、これはVariableと言って全然別物で
最初に代入した値の型をJavaScriptでは暗黙的に、C#では型推論で持ち回るものだから、もし、今後そう言った別言語を扱うことがあれば
そういうものだと覚えておけば勘違いしなくて済むよ。
例えばJavaScriptやC#には変数宣言する際に、型にvarって宣言することがあるけど、これはVariableと言って全然別物で
最初に代入した値の型をJavaScriptでは暗黙的に、C#では型推論で持ち回るものだから、もし、今後そう言った別言語を扱うことがあれば
そういうものだと覚えておけば勘違いしなくて済むよ。
493デフォルトの名無しさん (JP 0H98-On6t)
2021/04/29(木) 06:09:50.46ID:S4zpEuOGH Variant型っていうのはVBAやVBのために作られたわけじゃない
もともとWindowクラスが持ってる機能に対して、演算子をオーバーロードした物
もともとWindowクラスが持ってる機能に対して、演算子をオーバーロードした物
494デフォルトの名無しさん (テテンテンテン MM34-veNy)
2021/04/29(木) 06:17:04.92ID:K+5EoiH2M495デフォルトの名無しさん (JP 0H98-On6t)
2021/04/29(木) 06:50:30.24ID:S4zpEuOGH >>494
VariantとObjectは同じような物とか代替品として紹介してるサイトとかあるけど、これはあくまでも初心者向けの説明
実際はまったく違う物なので、個人的にはこうやって説明するのも反対したいところ
VariantとObjectは同じような物とか代替品として紹介してるサイトとかあるけど、これはあくまでも初心者向けの説明
実際はまったく違う物なので、個人的にはこうやって説明するのも反対したいところ
496デフォルトの名無しさん (テテンテンテン MM34-veNy)
2021/04/29(木) 07:11:32.09ID:uNZAJPBsM497デフォルトの名無しさん (ワッチョイ f64f-Opq7)
2021/04/29(木) 07:11:42.35ID:xPFf86S80 >>495
そうなんだよね
Variantの代わりがObjectだと言われると
うーん、まぁ間違っていないとは思うけど
物凄い違和感を感じるよね。
同じものかと言われれば絶対別物と
はっきり言うことが出来るけど。
そうなんだよね
Variantの代わりがObjectだと言われると
うーん、まぁ間違っていないとは思うけど
物凄い違和感を感じるよね。
同じものかと言われれば絶対別物と
はっきり言うことが出来るけど。
498デフォルトの名無しさん (ワッチョイ f64f-Opq7)
2021/04/29(木) 07:17:49.07ID:xPFf86S80 >>496
そうだねぇ
とりあえずこんなところかねぇ
ちなみに、何でも入る魔法の型といえば、C#ではobject型がそれに当たる。しかし、object型とVariant型は同じではない。object型は参照型であり、値型の値を扱うにはボックス化という手順が必要になる。また、参照型である以上、メモリの確保と破棄というオーバーヘッドが必ず付いて回る。しかし、Variant型は整数のような値であっても、オブジェクトへの参照であっても、それをそのまま格納できる。ボックス化やメモリの確保、解放のオーバーヘッドもない。まさに万能の魔法の箱である。
https://www.atmarkit.co.jp/fdotnet/extremecs/extremecs_12/extremecs_12_02.html
そうだねぇ
とりあえずこんなところかねぇ
ちなみに、何でも入る魔法の型といえば、C#ではobject型がそれに当たる。しかし、object型とVariant型は同じではない。object型は参照型であり、値型の値を扱うにはボックス化という手順が必要になる。また、参照型である以上、メモリの確保と破棄というオーバーヘッドが必ず付いて回る。しかし、Variant型は整数のような値であっても、オブジェクトへの参照であっても、それをそのまま格納できる。ボックス化やメモリの確保、解放のオーバーヘッドもない。まさに万能の魔法の箱である。
https://www.atmarkit.co.jp/fdotnet/extremecs/extremecs_12/extremecs_12_02.html
499デフォルトの名無しさん (ワッチョイ a868-8KU9)
2021/04/29(木) 07:22:43.60ID:r4t8KOvl0500デフォルトの名無しさん (ワッチョイ a868-8KU9)
2021/04/29(木) 07:23:03.00ID:r4t8KOvl0 なわけないか
501デフォルトの名無しさん (アウアウウー Sab5-4hJQ)
2021/04/29(木) 07:25:47.75ID:iJcHPvsoa VBAとVB.netはまったく別物で比較しようなんて思わない
標準がバリアントなんだからできるだけバリアントを使うべきだし
値渡しの件も、VBAでは値渡しのが原則なんだから
値渡しのオンリーにすべきとおもうけど
どうしても参照渡したいならパブリックにするだけ
標準がバリアントなんだからできるだけバリアントを使うべきだし
値渡しの件も、VBAでは値渡しのが原則なんだから
値渡しのオンリーにすべきとおもうけど
どうしても参照渡したいならパブリックにするだけ
502デフォルトの名無しさん (テテンテンテン MM34-veNy)
2021/04/29(木) 07:36:18.54ID:xmHZYPrVM503デフォルトの名無しさん (JP 0H98-On6t)
2021/04/29(木) 07:48:54.45ID:S4zpEuOGH504デフォルトの名無しさん (ワッチョイ a868-8KU9)
2021/04/29(木) 07:55:26.52ID:r4t8KOvl0 >>502
冗談で言ったらマジか
まぁオブジェクトは参照になるなら、ヒープ領域云々はそこまで考えなくてもいいか
vbaの文字列は文字の配列じゃなく単に値だったから、variantで文字列使いまくると良くない?
※そもそも値じゃなかったらごめん
冗談で言ったらマジか
まぁオブジェクトは参照になるなら、ヒープ領域云々はそこまで考えなくてもいいか
vbaの文字列は文字の配列じゃなく単に値だったから、variantで文字列使いまくると良くない?
※そもそも値じゃなかったらごめん
505デフォルトの名無しさん (ワッチョイ f64f-Opq7)
2021/04/29(木) 08:01:54.76ID:xPFf86S80506デフォルトの名無しさん (アウアウウー Sab5-4hJQ)
2021/04/29(木) 08:12:11.05ID:iJcHPvsoa VBのときに他の言語がどうこうと長話はじめるのは老害みたいなもの
気をつけたほうがよい
気をつけたほうがよい
507デフォルトの名無しさん (ワッチョイ f64f-Opq7)
2021/04/29(木) 08:17:52.33ID:xPFf86S80 老害だもの
みつを
みつを
508デフォルトの名無しさん (スプッッ Sd7e-T6Cp)
2021/04/29(木) 08:45:33.51ID:530kL6INd509デフォルトの名無しさん (ワッチョイ f64f-Opq7)
2021/04/29(木) 09:13:27.94ID:xPFf86S80 >>508
そうかVBSは明示的に型宣言することないから忘れてた
そうかVBSは明示的に型宣言することないから忘れてた
510デフォルトの名無しさん (JP 0H98-On6t)
2021/04/29(木) 09:39:50.72ID:S4zpEuOGH Visual StudioのC++のVariantクラスも構造体の中身はまったく同じ
511デフォルトの名無しさん (アウアウウー Sab5-4hJQ)
2021/04/29(木) 12:13:26.48ID:iJcHPvsoa そうなると
VBSにてintの宣言をしたいときはどうなるの
VBSにてintの宣言をしたいときはどうなるの
512デフォルトの名無しさん (ワッチョイ 4b63-Z8j5)
2021/04/29(木) 12:38:49.55ID:q/beK7t50 その辺考慮することでExcelのマクロとしてどんなメリットがあるの?
513デフォルトの名無しさん (スップ Sd02-On6t)
2021/04/29(木) 13:12:06.33ID:KFW9RSkud >>511 不可能
514デフォルトの名無しさん (ワッチョイ 1e01-bfA/)
2021/04/29(木) 13:13:04.28ID:Z9k/ziJ20 よくわからんけど一般的な仕事に使うのに知る必要のある情報じゃなさそう
515デフォルトの名無しさん (スップ Sd02-On6t)
2021/04/29(木) 13:16:00.97ID:KFW9RSkud >>512
Variantは多機能だからプログラミングの負担を減らすことができるけど、メモリ食いだから、たとえば大きい配列が宣言できなかったりする
Variantは多機能だからプログラミングの負担を減らすことができるけど、メモリ食いだから、たとえば大きい配列が宣言できなかったりする
516デフォルトの名無しさん (ワッチョイ bd10-y5Lq)
2021/04/29(木) 16:00:22.26ID:EFUE1W1F0 AccessVBAエキスパートの試験では扱う範囲
ExcelVBAエキスパートでは気にしたくていい
試験はAccessVBAの方が2段くらい難しい
もちろんスタンダードの話な
ExcelVBAエキスパートでは気にしたくていい
試験はAccessVBAの方が2段くらい難しい
もちろんスタンダードの話な
517デフォルトの名無しさん (ワッチョイ fe68-uCoU)
2021/04/29(木) 16:53:35.51ID:aGUEXGqc0 エクセルで組んだ表や数式を
いつパソコンが壊れても
すぐ復元できるよう
メモに残しておきたいんですが
すでにある内容を
HTML文書みたいに文字だけに変換できたりってするんですか?
いつパソコンが壊れても
すぐ復元できるよう
メモに残しておきたいんですが
すでにある内容を
HTML文書みたいに文字だけに変換できたりってするんですか?
518デフォルトの名無しさん (ワッチョイ 1e01-bfA/)
2021/04/29(木) 17:08:19.64ID:Z9k/ziJ20 素直にバックアップとるかクラウドで良くないですか
519デフォルトの名無しさん (アウアウウー Sa08-iXMK)
2021/04/29(木) 18:10:50.49ID:MWXZTeF3a >>517
壊れたパソコンには復元できないよ
壊れたパソコンには復元できないよ
520デフォルトの名無しさん (ワッチョイ fe68-uCoU)
2021/04/29(木) 18:18:45.59ID:aGUEXGqc0 再現っていえばいいのかなんといえばいいのか…
とりあえずもしもの時のためにレシピ?を残しておきたい
とりあえずもしもの時のためにレシピ?を残しておきたい
521デフォルトの名無しさん (ワッチョイ 38e6-4uvq)
2021/04/29(木) 18:24:10.96ID:aTZmoNVK0 .slk マルチプラン形式ならテキストとして読めるぞ
522デフォルトの名無しさん (アウアウウー Sab5-4hJQ)
2021/04/29(木) 19:07:29.38ID:k0BuRVHXa523デフォルトの名無しさん (ワッチョイ d98e-iMGS)
2021/04/29(木) 19:41:36.50ID:gMCbhKMx0524デフォルトの名無しさん (ワッチョイ 4e10-mEE2)
2021/04/29(木) 19:42:12.84ID:I+JPieVz0525デフォルトの名無しさん (ワッチョイ fe68-uCoU)
2021/04/29(木) 19:53:50.93ID:aGUEXGqc0 フラッシュメモリーに保存してるけどそれも壊れるかもしれないし
526デフォルトの名無しさん (ワッチョイ 1e01-bfA/)
2021/04/29(木) 20:04:58.52ID:Z9k/ziJ20 だからグーグルのクラウドにでも保存しとけよ
527デフォルトの名無しさん (ワッチョイ d98e-iMGS)
2021/04/29(木) 21:46:03.77ID:gMCbhKMx0 >>525
馬鹿は帰れ
馬鹿は帰れ
528デフォルトの名無しさん (アウアウエー Sa6a-rcSs)
2021/04/29(木) 21:47:52.03ID:qBmeMAVZa >>525
VBAより先に勉強すべきことがある
VBAより先に勉強すべきことがある
529デフォルトの名無しさん (ワッチョイ a868-8KU9)
2021/04/29(木) 21:57:15.15ID:r4t8KOvl0530デフォルトの名無しさん (ワッチョイ c7cc-TNk6)
2021/04/30(金) 00:10:52.82ID:G7lq05sG0 これを短く書きたいのですが、どう書けばいいですか?
Range(Cells(r, 1),Cells(r, 10)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.CurrentRegion.Borders.LineStyle = xlContinuous
Range(Cells(r, 1),Cells(r, 10)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.CurrentRegion.Borders.LineStyle = xlContinuous
531デフォルトの名無しさん (ワッチョイ 7fda-OedE)
2021/04/30(金) 00:13:18.87ID:1H39I5ca0 >>520
カセットテープに保存しとけよ
カセットテープに保存しとけよ
532デフォルトの名無しさん (ワッチョイ 8768-YF1U)
2021/04/30(金) 00:38:44.27ID:XMOC9xEV0 >>530
やりたいことは
Range(Cells(r, 1),Cells(r, 10))
・・・
Range(Cells(r, 11),Cells(r, 20)
みたいなこと?
全容を見せてくれたほうが早いと思う。
やりたいことは
Range(Cells(r, 1),Cells(r, 10))
・・・
Range(Cells(r, 11),Cells(r, 20)
みたいなこと?
全容を見せてくれたほうが早いと思う。
533デフォルトの名無しさん (ワッチョイ 2701-3faj)
2021/04/30(金) 02:19:19.76ID:zq+mlYyf0 >>530
やりたいことを言葉で説明した方が速そう
やりたいことを言葉で説明した方が速そう
534デフォルトの名無しさん (ワッチョイ 2701-3faj)
2021/04/30(金) 02:34:26.19ID:zq+mlYyf0535デフォルトの名無しさん (ワッチョイ bfba-t5YL)
2021/04/30(金) 02:53:52.43ID:sRtBXBMU0 Excelのマクロをエクセル環境なしに実行したいのですが、
vbsをつかえばExcelは不要ですか?
vbsをつかえばExcelは不要ですか?
536デフォルトの名無しさん (ワッチョイ 8768-YF1U)
2021/04/30(金) 03:01:21.54ID:XMOC9xEV0537デフォルトの名無しさん (ワッチョイ 8768-YF1U)
2021/04/30(金) 03:02:27.11ID:XMOC9xEV0538デフォルトの名無しさん (ワッチョイ bfba-t5YL)
2021/04/30(金) 03:04:35.08ID:sRtBXBMU0539デフォルトの名無しさん (ワッチョイ 2701-3faj)
2021/04/30(金) 03:23:39.09ID:zq+mlYyf0 vbsは型宣言が出来ない、
VBAで可能なライブラリ参照が出来ない、
暗黙の参照先等の違いがる
それらを使用していないコードなら実行出来る可能性がある
(要するに簡単にはいかない)
正直「みんな入れてるであろうエクセルで実行できる」っていうただ一つのメリットのみを目的ににして
わざわざ使いにくいVBAを仕方なしに許容してるのであって、
エクセル不要ならPythonなりJSなりC#で書くべき
VBAで可能なライブラリ参照が出来ない、
暗黙の参照先等の違いがる
それらを使用していないコードなら実行出来る可能性がある
(要するに簡単にはいかない)
正直「みんな入れてるであろうエクセルで実行できる」っていうただ一つのメリットのみを目的ににして
わざわざ使いにくいVBAを仕方なしに許容してるのであって、
エクセル不要ならPythonなりJSなりC#で書くべき
540デフォルトの名無しさん (ワッチョイ 8768-YF1U)
2021/04/30(金) 03:29:54.28ID:XMOC9xEV0 >>538
内容による
vbsとvbaは似て非なるもの、だけど互換性はまぁまぁある
vbaをまるっとvbsにコピペして動くものもあれば、手直ししないと動かないもの、絶対に無理なものもある
まぁコピーペーストだけで一発で動くのは稀だとは思う。大体動かないだろう
また、vbsは無料でwindowsに標準でついているので、あーだこーだ言うよりはやったほうが早い
内容による
vbsとvbaは似て非なるもの、だけど互換性はまぁまぁある
vbaをまるっとvbsにコピペして動くものもあれば、手直ししないと動かないもの、絶対に無理なものもある
まぁコピーペーストだけで一発で動くのは稀だとは思う。大体動かないだろう
また、vbsは無料でwindowsに標準でついているので、あーだこーだ言うよりはやったほうが早い
541デフォルトの名無しさん (ワッチョイ 2701-3faj)
2021/04/30(金) 03:37:12.82ID:zq+mlYyf0 >>536
貼ってくれたURLのページにある
>String型変数のメモリアドレス
これ、要するにString型変数の値は参照値って事?
察してはいたけどByval xxx$って嘘じゃん
調べれば調べるほど無茶苦茶な言語だなw
ただ先頭に配列長が入ってるのは嬉しいな
LEN関数が高速だって事だし、実際に検証したらそうだった
これからは文字列の有無はLEN関数を使おう
貼ってくれたURLのページにある
>String型変数のメモリアドレス
これ、要するにString型変数の値は参照値って事?
察してはいたけどByval xxx$って嘘じゃん
調べれば調べるほど無茶苦茶な言語だなw
ただ先頭に配列長が入ってるのは嬉しいな
LEN関数が高速だって事だし、実際に検証したらそうだった
これからは文字列の有無はLEN関数を使おう
542デフォルトの名無しさん (JP 0Hcb-OedE)
2021/04/30(金) 04:58:51.13ID:VHqB9FfdH >>534
MSDNのWin32APIのリファレンス
https://docs.microsoft.com/en-us/windows/win32/api/oaidl/ns-oaidl-variant
これを見れば、Valiant構造体は共用体の入った構造体が共用体になってることが一目瞭然
VBAからは、初期化の手順を省略(自動化)したりして簡単に使えるようにしてある
MSDNのWin32APIのリファレンス
https://docs.microsoft.com/en-us/windows/win32/api/oaidl/ns-oaidl-variant
これを見れば、Valiant構造体は共用体の入った構造体が共用体になってることが一目瞭然
VBAからは、初期化の手順を省略(自動化)したりして簡単に使えるようにしてある
543デフォルトの名無しさん (ワッチョイ df05-uN1F)
2021/04/30(金) 06:01:15.47ID:w8M9C8im0 Dim abc As Variant, maxVal Variant
abc = Range("A1:A100")
・
・
・
maxVal = WorksheetFunction.Max(abc(50 To 80, 1))
これはabc(50 To 80, 1)の部分でコンパイルエラーになりますが、
このように一発で配列内の特定の範囲の値を取得することはできますか?
やはりFor〜Nextで回してやらないと駄目でしょうか?
abc = Range("A1:A100")
・
・
・
maxVal = WorksheetFunction.Max(abc(50 To 80, 1))
これはabc(50 To 80, 1)の部分でコンパイルエラーになりますが、
このように一発で配列内の特定の範囲の値を取得することはできますか?
やはりFor〜Nextで回してやらないと駄目でしょうか?
544デフォルトの名無しさん (JP 0Hcb-OedE)
2021/04/30(金) 06:19:01.47ID:VHqB9FfdH545デフォルトの名無しさん (テテンテンテン MM8f-m/Zw)
2021/04/30(金) 07:04:01.89ID:M0On9wgSM >>541
> 察してはいたけどByval xxx$って嘘じゃん
噓じゃねーよ、Byvalならちゃんとコピーされる(内部的には新規領域確保して内容コピー)
> 調べれば調べるほど無茶苦茶な言語だなw
お前さんの理解力が足らんだけ
> 察してはいたけどByval xxx$って嘘じゃん
噓じゃねーよ、Byvalならちゃんとコピーされる(内部的には新規領域確保して内容コピー)
> 調べれば調べるほど無茶苦茶な言語だなw
お前さんの理解力が足らんだけ
546デフォルトの名無しさん (JP 0Hcb-OedE)
2021/04/30(金) 07:57:01.95ID:VHqB9FfdH メモリ上で文字列領域の先頭に長さが入ってるのはMicrosoft BASICの伝統
C言語などで使われる\x00で区切る方式だと文字列の中にChr$(&h00)を入れられなくなるので地味に面倒だった
C言語などで使われる\x00で区切る方式だと文字列の中にChr$(&h00)を入れられなくなるので地味に面倒だった
547デフォルトの名無しさん (ワッチョイ 8768-YF1U)
2021/04/30(金) 09:18:44.82ID:XMOC9xEV0 だから、有限なんですね
548デフォルトの名無しさん (アウアウウー Saab-5hFs)
2021/04/30(金) 09:53:25.08ID:JEk9gHJMa 改行しろよ、読みにくいだろ
549デフォルトの名無しさん (ワッチョイ df05-uN1F)
2021/04/30(金) 10:28:11.61ID:8Lrh8uSx0550デフォルトの名無しさん (アウアウウー Saab-qkI6)
2021/04/30(金) 10:56:55.90ID:S41gzW82a WorksheetFunctionってその名の通りワークシート上の計算をするためのものだから仕方ないわな
551デフォルトの名無しさん (ワッチョイ 672f-uN1F)
2021/04/30(金) 13:14:51.01ID:lXELEtlJ0552デフォルトの名無しさん (JP 0Hcb-OedE)
2021/04/30(金) 13:46:28.53ID:VHqB9FfdH553デフォルトの名無しさん (ブーイモ MMcf-solw)
2021/04/30(金) 13:52:18.51ID:4gSq67JmM 質問者を納得させるのではなく
自分の知識をドヤ顔で披露する場がこのスレ
自分の知識をドヤ顔で披露する場がこのスレ
554デフォルトの名無しさん (ラクッペペ MM8f-HlUj)
2021/04/30(金) 13:55:12.85ID:clFaH4DRM 古代BASIC語の使えるやつには想像すらできない構文だな
ナウい言語から入るとこんな発想が出来るのか
Enumeraterとか作ってもコールバック関数書くのが面倒くさいからどうしようもないよね
ナウい言語から入るとこんな発想が出来るのか
Enumeraterとか作ってもコールバック関数書くのが面倒くさいからどうしようもないよね
555デフォルトの名無しさん (ワッチョイ df4f-U2UV)
2021/04/30(金) 14:11:06.28ID:lUzIA11U0 10 CONSOLE 0,25,0,1
20 SCRERN 0,0
20 SCRERN 0,0
556デフォルトの名無しさん (ワッチョイ 7fda-PU2s)
2021/04/30(金) 14:13:33.94ID:1H39I5ca0557デフォルトの名無しさん (スップ Sdff-PTVc)
2021/04/30(金) 16:19:17.86ID:W9vsivKyd sheet1のB1が整数ならSheet2のC1
にSheet1のB1の整数をSheet2のC1に
表示し
Sheet1のB1が整数でない場合は
Sheet2のC1にSheet1のA1の整数を表示
させたいのですが、インデックス範囲エラーになったりして困ってます
Numeric関数なのはわかるんですが
標準モジュールに書くのか
Sheet1に書くのかわかりません
ご教授ください
Private Sub Worksheet_Change(ByVal Taget as Range)
If IsNumeric(Worksheets("1").Range)
にSheet1のB1の整数をSheet2のC1に
表示し
Sheet1のB1が整数でない場合は
Sheet2のC1にSheet1のA1の整数を表示
させたいのですが、インデックス範囲エラーになったりして困ってます
Numeric関数なのはわかるんですが
標準モジュールに書くのか
Sheet1に書くのかわかりません
ご教授ください
Private Sub Worksheet_Change(ByVal Taget as Range)
If IsNumeric(Worksheets("1").Range)
558デフォルトの名無しさん (アウアウウー Saab-qkI6)
2021/04/30(金) 16:51:06.75ID:S41gzW82a559デフォルトの名無しさん (スップ Sdff-PTVc)
2021/04/30(金) 17:19:44.60ID:W9vsivKyd Sheet1にコードを書いてます
560デフォルトの名無しさん (ワッチョイ e701-jEDI)
2021/04/30(金) 19:10:46.17ID:qIU2nW870 そもそもnumericって整数かどうかじゃなくて
数字かどうかの判定じゃなかったか?
数字かどうかの判定じゃなかったか?
561デフォルトの名無しさん (ワッチョイ e701-jEDI)
2021/04/30(金) 19:11:19.57ID:qIU2nW870 あとrangeじゃなくてtargetやろ
562デフォルトの名無しさん (ワッチョイ e701-jEDI)
2021/04/30(金) 19:12:09.12ID:qIU2nW870 あっrangeであってたわ
range(target.address)かな
range(target.address)かな
563デフォルトの名無しさん (ワッチョイ 7fda-OedE)
2021/04/30(金) 19:13:35.28ID:1H39I5ca0564デフォルトの名無しさん (スップ Sdff-PTVc)
2021/04/30(金) 19:48:53.26ID:W9vsivKyd Sheet1のB1の値が変化したらSheet2のC1が変化させたいのでSheet1にコードを書いてチェンジイベントでいいのかな?
むずかしいですね
むずかしいですね
565デフォルトの名無しさん (ワッチョイ 2701-3faj)
2021/04/30(金) 21:15:34.30ID:zq+mlYyf0566デフォルトの名無しさん (ワッチョイ 2701-3faj)
2021/04/30(金) 21:20:31.83ID:zq+mlYyf0567デフォルトの名無しさん (テテンテンテン MM8f-m/Zw)
2021/04/30(金) 21:52:12.56ID:BfTXTUZEM >>565
元々文字列は内容変わったら領域確保し直したりするから内部的に参照持つのが普通
ByVal は文字列を複製して渡すしByRefは内部的な参照への参照を渡す
何の矛盾もないよ
中途半端に内部的な参照を気にしてもしょうがないよ
元々文字列は内容変わったら領域確保し直したりするから内部的に参照持つのが普通
ByVal は文字列を複製して渡すしByRefは内部的な参照への参照を渡す
何の矛盾もないよ
中途半端に内部的な参照を気にしてもしょうがないよ
568デフォルトの名無しさん (ワッチョイ df4f-U2UV)
2021/04/30(金) 21:55:44.24ID:lUzIA11U0 >>565
え?そうだっけ?
確か配列は参照渡ししか出来ないから
Variant型に突っ込んで渡して
値型のものを渡すようにするんじゃなかったっけ?
もっともそれでも参照型のものは参照が渡されるけど。
え?そうだっけ?
確か配列は参照渡ししか出来ないから
Variant型に突っ込んで渡して
値型のものを渡すようにするんじゃなかったっけ?
もっともそれでも参照型のものは参照が渡されるけど。
569デフォルトの名無しさん (ワッチョイ 0702-h3Dk)
2021/04/30(金) 22:00:13.74ID:HAcSh5oY0 誰か教えてほしいんですが、
数字を単純に足すんじゃなくて=+100+200というふうに増えた数字を全部数式に残していくように一つのセルに入れていくやり方ってありますか?
例えば別のシートに100 200 350とあったら
記録用のシートのセルに=100+200+350と飛ばしたいです。
セルの中身見た時に650となってるのではなくて=100+200+350と表示されてほしい
数字を単純に足すんじゃなくて=+100+200というふうに増えた数字を全部数式に残していくように一つのセルに入れていくやり方ってありますか?
例えば別のシートに100 200 350とあったら
記録用のシートのセルに=100+200+350と飛ばしたいです。
セルの中身見た時に650となってるのではなくて=100+200+350と表示されてほしい
570デフォルトの名無しさん (ワッチョイ df4f-U2UV)
2021/04/30(金) 22:02:58.83ID:lUzIA11U0 >>569
単純にCStrで数字を文字列に変換して繋げばいいだけと思うけどそういう意味じゃない?
単純にCStrで数字を文字列に変換して繋げばいいだけと思うけどそういう意味じゃない?
571デフォルトの名無しさん (アウアウウー Saab-5hFs)
2021/04/30(金) 23:05:04.91ID:ftoQG8Lta572デフォルトの名無しさん (アウアウウー Saab-5hFs)
2021/04/30(金) 23:07:22.57ID:ftoQG8Lta >>569
これも式を表示するモードがあったはず
これも式を表示するモードがあったはず
573デフォルトの名無しさん (ワッチョイ 8768-YF1U)
2021/04/30(金) 23:09:00.86ID:XMOC9xEV0 >>557
sheet1モジュールに書く
シート名はs1とs2にしてるのでテキトーに変えて
Private Sub Worksheet_Change(ByVal Target As Range)
If _
Target.Address <> "$B$1" _
Or Not (IsNumeric(Target)) _
Then
Exit Sub
End If
main = Cells(1, 2).Value
main2 = Cells(1, 1).Value
If (Int(main) - (main)) = 0 Then
Sheets("s2").Cells(1, 3) = main
Else
Sheets("s2").Cells(1, 3) = Int(main2)
End If
End Sub
sheet1モジュールに書く
シート名はs1とs2にしてるのでテキトーに変えて
Private Sub Worksheet_Change(ByVal Target As Range)
If _
Target.Address <> "$B$1" _
Or Not (IsNumeric(Target)) _
Then
Exit Sub
End If
main = Cells(1, 2).Value
main2 = Cells(1, 1).Value
If (Int(main) - (main)) = 0 Then
Sheets("s2").Cells(1, 3) = main
Else
Sheets("s2").Cells(1, 3) = Int(main2)
End If
End Sub
574デフォルトの名無しさん (ワッチョイ 8768-YF1U)
2021/04/30(金) 23:13:44.15ID:XMOC9xEV0 >>569
地味にやるしかない
Sub foo()
Cells(3, 1).Formula = "=" & Cells(1, 1).Value & "+" & Cells(2, 1)
End Sub
量が多いならfornextかなんかで処理すると良い
地味にやるしかない
Sub foo()
Cells(3, 1).Formula = "=" & Cells(1, 1).Value & "+" & Cells(2, 1)
End Sub
量が多いならfornextかなんかで処理すると良い
575デフォルトの名無しさん (ワッチョイ 8768-YF1U)
2021/04/30(金) 23:13:57.10ID:XMOC9xEV0 joinほしい
576デフォルトの名無しさん (スップ Sdff-PTVc)
2021/04/30(金) 23:21:20.34ID:W9vsivKyd577デフォルトの名無しさん (ワッチョイ 0702-h3Dk)
2021/04/30(金) 23:40:08.54ID:HAcSh5oY0578デフォルトの名無しさん (ワッチョイ 7fda-OedE)
2021/05/01(土) 00:46:43.32ID:zFFwGDhV0 CONCATがある
579デフォルトの名無しさん (テテンテンテン MM8f-m/Zw)
2021/05/01(土) 05:48:25.12ID:1uksgnWZM >>575
Joinあるやろ
手元にExcelないから試してないけど
Cells(3, 1).Formula = "=" & Join(Application.Transpose(Range("A1:C1" ).Value), "+")
でいけないかな
Joinあるやろ
手元にExcelないから試してないけど
Cells(3, 1).Formula = "=" & Join(Application.Transpose(Range("A1:C1" ).Value), "+")
でいけないかな
580579 (テテンテンテン MM8f-m/Zw)
2021/05/01(土) 06:04:07.19ID:jbHbRAMYM よく見たら行/列間違えてるわ
Cells(3, 1).Formula = "=" & Join(Application.Transpose(Range("A1:A3" ).Value), "+")
だな
Excel 2019ならVBA使わずに
C1: =TEXTJOIN("+", TRUE, "=", A1:A3)
でいけるかも
Cells(3, 1).Formula = "=" & Join(Application.Transpose(Range("A1:A3" ).Value), "+")
だな
Excel 2019ならVBA使わずに
C1: =TEXTJOIN("+", TRUE, "=", A1:A3)
でいけるかも
581デフォルトの名無しさん (ワッチョイ 0702-h3Dk)
2021/05/01(土) 10:06:17.84ID:v351dbwI0 >>580
例えば元表
コード 200 金額 200 5月
コード 150 金額 300 4月
コード 200 金額 500 5月
コード 150 金額 400 6月
コード 200 金額 50 5月
と並んでたとして、飛ばしたい表に
コード200に一致した場合は=200+500+50
コード150 の4月は=300
みたいな感じで月が同じでコードが一致してる場合だけ積み立てていくことってできますか?
うまくいかなくて、、
例えば元表
コード 200 金額 200 5月
コード 150 金額 300 4月
コード 200 金額 500 5月
コード 150 金額 400 6月
コード 200 金額 50 5月
と並んでたとして、飛ばしたい表に
コード200に一致した場合は=200+500+50
コード150 の4月は=300
みたいな感じで月が同じでコードが一致してる場合だけ積み立てていくことってできますか?
うまくいかなくて、、
582デフォルトの名無しさん (ワッチョイ 8768-YF1U)
2021/05/01(土) 10:22:39.67ID:orU8r25h0 >>580
別の質問だけど、
Application.Transpose
って
WorksheetFunction.Transpose
の事?
ApplicationってついてたらWorksheetFunctionは省略できるの?
別の質問だけど、
Application.Transpose
って
WorksheetFunction.Transpose
の事?
ApplicationってついてたらWorksheetFunctionは省略できるの?
583デフォルトの名無しさん (アウアウウー Saab-5hFs)
2021/05/01(土) 13:16:18.88ID:eT9ez6fta こういう処理はピボットの得意分野だとおもう
ピボットスレにも聞いてみたらとうかな
ピボットスレにも聞いてみたらとうかな
584デフォルトの名無しさん (ワッチョイ 7fda-x7Q7)
2021/05/01(土) 13:18:22.06ID:+awRLs9V0 ピボットスレってあったっけ?
585デフォルトの名無しさん (ラクッペペ MM8f-HlUj)
2021/05/01(土) 13:20:57.76ID:GvoaCTGBM >>582
互換、環境の違い……
互換、環境の違い……
586デフォルトの名無しさん (アウアウウー Saab-5hFs)
2021/05/01(土) 13:30:58.50ID:eT9ez6fta ピボットを設定して
たて列を月
よこ列を単価
合計は "値で合計"にする <はじめは個数で合計>になってる
いちばん間違えやすいところ
たて列を月
よこ列を単価
合計は "値で合計"にする <はじめは個数で合計>になってる
いちばん間違えやすいところ
587デフォルトの名無しさん (ワッチョイ dff0-Ew5U)
2021/05/01(土) 14:28:03.48ID:FxNutXRP0 >>573
> >>557
> sheet1モジュールに書く
> シート名はs1とs2にしてるのでテキトーに変えて
>
>
> Private Sub Worksheet_Change(ByVal Target As Range)
>
> If _
> Target.Address <> "$B$1" _
> Or Not (IsNumeric(Target)) _
> Then
> Exit Sub
> End If
>
> main = Cells(1, 2).Value
> main2 = Cells(1, 1).Value
>
> If (Int(main) - (main)) = 0 Then
> Sheets("s2").Cells(1, 3) = main
> Else
> Sheets("s2").Cells(1, 3) = Int(main2)
> End If
>
> End Sub
あらためて
ありがとうございます。
整数なら無視できるようになりました!
あとは Sheets("s2").Cells(1, 3) にSheets("s1").Cells(1, 2).Valueが整数じゃなければSheets("s1").Cells(1, 1).Valueが入れば完璧です
ちょっと自分でググってみます!もしできないようならまた質問させてください
> >>557
> sheet1モジュールに書く
> シート名はs1とs2にしてるのでテキトーに変えて
>
>
> Private Sub Worksheet_Change(ByVal Target As Range)
>
> If _
> Target.Address <> "$B$1" _
> Or Not (IsNumeric(Target)) _
> Then
> Exit Sub
> End If
>
> main = Cells(1, 2).Value
> main2 = Cells(1, 1).Value
>
> If (Int(main) - (main)) = 0 Then
> Sheets("s2").Cells(1, 3) = main
> Else
> Sheets("s2").Cells(1, 3) = Int(main2)
> End If
>
> End Sub
あらためて
ありがとうございます。
整数なら無視できるようになりました!
あとは Sheets("s2").Cells(1, 3) にSheets("s1").Cells(1, 2).Valueが整数じゃなければSheets("s1").Cells(1, 1).Valueが入れば完璧です
ちょっと自分でググってみます!もしできないようならまた質問させてください
588デフォルトの名無しさん (ワッチョイ dfda-PU2s)
2021/05/01(土) 15:00:22.43ID:FcpS+0KE0 >>584
誰か建ててくれると期待してはや数年。。。
誰か建ててくれると期待してはや数年。。。
589デフォルトの名無しさん (ワッチョイ 7fda-x7Q7)
2021/05/01(土) 15:05:23.71ID:+awRLs9V0 PowerQueryスレは建ったんだけど、
https://mevius.5ch.net/test/read.cgi/bsoft/1571540368/
ピボットスレ、建ててみる?
先日、総合相談スレでPowerPivot絡みの質問はあったが。
https://mevius.5ch.net/test/read.cgi/bsoft/1571540368/
ピボットスレ、建ててみる?
先日、総合相談スレでPowerPivot絡みの質問はあったが。
590デフォルトの名無しさん (ワッチョイ 0702-h3Dk)
2021/05/01(土) 15:15:39.62ID:v351dbwI0591デフォルトの名無しさん (アウアウウー Saab-5hFs)
2021/05/01(土) 16:16:38.30ID:eT9ez6fta あーそうかも
やはりピボットスレが立つまで待ちますか
やはりピボットスレが立つまで待ちますか
592デフォルトの名無しさん (ワッチョイ dfb3-3tTE)
2021/05/01(土) 16:42:05.48ID:AMC1YaHy0 >>581
それは、たとえば、元表にB1&countif(B$1:B1,B1)みたいな作業列を作って
飛ばしたい表に、iferror(index(D:D,match(作業列,コード&column()+1,0)),"")
みたいな数式を貼り付けるのではだめですか?
1つのセルに、数式として入っている必要性が、あるのですか?
それは、たとえば、元表にB1&countif(B$1:B1,B1)みたいな作業列を作って
飛ばしたい表に、iferror(index(D:D,match(作業列,コード&column()+1,0)),"")
みたいな数式を貼り付けるのではだめですか?
1つのセルに、数式として入っている必要性が、あるのですか?
593デフォルトの名無しさん (ワッチョイ dfb3-3tTE)
2021/05/01(土) 17:05:58.85ID:AMC1YaHy0 >>592修正、matchの書式も違うし
月も必要なので、B1&E1 を作業列Fに、count(F$1:F1,F1)を作業列Gに入れて
飛ばしたい表のA列はコード、B列は月、C列以降にiferror(index(元表!$D:$D,match($A1&$B1&column()-2,元表!$F:$F,0)),"")
こんな感じではだめですか?
月も必要なので、B1&E1 を作業列Fに、count(F$1:F1,F1)を作業列Gに入れて
飛ばしたい表のA列はコード、B列は月、C列以降にiferror(index(元表!$D:$D,match($A1&$B1&column()-2,元表!$F:$F,0)),"")
こんな感じではだめですか?
594デフォルトの名無しさん (ワッチョイ 0702-h3Dk)
2021/05/01(土) 17:25:51.43ID:v351dbwI0 >>592
合計なら楽なんですが、どうしても=+で数字を積み立てないとダメなんですよね、、
だから数式では解決できない気がします
vbaでやるなら配列に詰め込んで最後に結合させるのかなあとか思ってるんですがなかなかいいコードが思い浮かばない、、
合計なら楽なんですが、どうしても=+で数字を積み立てないとダメなんですよね、、
だから数式では解決できない気がします
vbaでやるなら配列に詰め込んで最後に結合させるのかなあとか思ってるんですがなかなかいいコードが思い浮かばない、、
595デフォルトの名無しさん (ワッチョイ 0702-h3Dk)
2021/05/01(土) 17:29:33.26ID:v351dbwI0 >>593
ちなみに飛ばしたい表のB列は月というか
月
コード 〜
みたいな形になってて、月は横軸の大項目としてしか存在してないんですよね
色々厄介な作りになってまして、、
ちなみに飛ばしたい表のB列は月というか
月
コード 〜
みたいな形になってて、月は横軸の大項目としてしか存在してないんですよね
色々厄介な作りになってまして、、
596デフォルトの名無しさん (ワッチョイ a78e-MiMN)
2021/05/01(土) 17:33:09.92ID:d9MtRRCh0 知能に障害がある人ばかり質問するようになった感じ
597デフォルトの名無しさん (ワッチョイ df79-2I0v)
2021/05/01(土) 17:49:10.58ID:MA8kI4AW0 コロナ自粛でGW中だから暇なんだよ
暇な人に相手して欲しいんだよ
暇な人に相手して欲しいんだよ
598デフォルトの名無しさん (ワッチョイ dfda-PU2s)
2021/05/01(土) 18:04:53.11ID:QtACG4Vk0 知恵袋でやれば良いと思う
599579 (テテンテンテン MM8f-m/Zw)
2021/05/01(土) 18:07:44.96ID:4GddeLjJM >>581
> みたいな感じで月が同じでコードが一致してる場合だけ積み立てていくことってできますか?
月が同じってどこと同じなの?
コードのようにどこかで指定するってこと?
とりあえずコードがA列、金額がB列、月がC列に入っているとして
Dim 元表 As Sheet: Set 元表 = Range("A1:C10")
Dim 金額() As String: ReDim 金額(元表.Row To 元表.Row + 元表.Rows.Count - 1)
Dim 書込行 As Long: 書込行 = LBound(金額)
Dim 行 As Long
For 行 = LBound(金額) To UBound(金額)
If Cells(行, "A").Value = コード And Cells(行, "C").Value = 月 Then
金額(書込行) = Cells(行, "B").Value
書込行 = 書込行 + 1
End If
Next
ReDim Preserve 金額(LBound(金額) To 書込行 - 1)
Range("D1").Formula = "=" & Join("+",
金額)
みたいな感じでいけると思う
>582
ごめん、テキトーにググって書いてるから間違えてるみたいやな
Application.WorksheetFunction.Transpose
にしといて
> みたいな感じで月が同じでコードが一致してる場合だけ積み立てていくことってできますか?
月が同じってどこと同じなの?
コードのようにどこかで指定するってこと?
とりあえずコードがA列、金額がB列、月がC列に入っているとして
Dim 元表 As Sheet: Set 元表 = Range("A1:C10")
Dim 金額() As String: ReDim 金額(元表.Row To 元表.Row + 元表.Rows.Count - 1)
Dim 書込行 As Long: 書込行 = LBound(金額)
Dim 行 As Long
For 行 = LBound(金額) To UBound(金額)
If Cells(行, "A").Value = コード And Cells(行, "C").Value = 月 Then
金額(書込行) = Cells(行, "B").Value
書込行 = 書込行 + 1
End If
Next
ReDim Preserve 金額(LBound(金額) To 書込行 - 1)
Range("D1").Formula = "=" & Join("+",
金額)
みたいな感じでいけると思う
>582
ごめん、テキトーにググって書いてるから間違えてるみたいやな
Application.WorksheetFunction.Transpose
にしといて
600デフォルトの名無しさん (ワッチョイ 075f-2Bcu)
2021/05/01(土) 18:46:01.00ID:z941MlAe0 >>599
最初の型はSheetじゃなくてRangeじゃね
あとこの人の言ってるのは普通に文字列としてValueプロパティに式を書き込めばいいような気がするけど
上で語ってる人ってあんま教えに来ないよな
最初の型はSheetじゃなくてRangeじゃね
あとこの人の言ってるのは普通に文字列としてValueプロパティに式を書き込めばいいような気がするけど
上で語ってる人ってあんま教えに来ないよな
601デフォルトの名無しさん (ワッチョイ 0702-h3Dk)
2021/05/01(土) 18:57:24.37ID:v351dbwI0 >>599
試しにやろうとしたら最終行が型不一致でエラーになりました・・
試しにやろうとしたら最終行が型不一致でエラーになりました・・
602579 (テテンテンテン MM8f-m/Zw)
2021/05/01(土) 19:57:34.66ID:jFabojDWM603デフォルトの名無しさん (ワッチョイ 0702-h3Dk)
2021/05/01(土) 20:06:26.75ID:v351dbwI0604デフォルトの名無しさん (ワントンキン MMbf-Pk3V)
2021/05/01(土) 22:02:09.39ID:ueS9oUA3M >>603
自分で考えることくらいしろや、ゆとり
自分で考えることくらいしろや、ゆとり
605デフォルトの名無しさん (ワッチョイ 8701-I0Kk)
2021/05/01(土) 22:18:52.25ID:T1b9C9NF0 dim hako() as variant
redim hako(ここはデータ数を格納)
for i = 0 to 回数
hako(i) = Worksheets("Sheet1").Range(Worksheets("Sheet1").Cells(1,1), Worksheets("Sheet1").Cells(1,1)).Value
next
こんな感じで配列の中にセルの文字入れて行こうとするとエラーになるんですが原因分かる人居たら教えてください
便宜上cellの位置は1,1にしてますけど実際は縦が動いていきます
redim hako(ここはデータ数を格納)
for i = 0 to 回数
hako(i) = Worksheets("Sheet1").Range(Worksheets("Sheet1").Cells(1,1), Worksheets("Sheet1").Cells(1,1)).Value
next
こんな感じで配列の中にセルの文字入れて行こうとするとエラーになるんですが原因分かる人居たら教えてください
便宜上cellの位置は1,1にしてますけど実際は縦が動いていきます
606デフォルトの名無しさん (ワッチョイ df8f-OedE)
2021/05/01(土) 22:41:00.37ID:/V6pM9G50 >>541
> これ、要するにString型変数の値は参照値って事?
> 察してはいたけどByval xxx$って嘘じゃん
逆にC知ってると、文字列がプリミティブってのにものすごい
違和感があるよ。「ああ、内部で変換してんだな。そういうものだと
思っておこう」と、自分を納得させる。
> これ、要するにString型変数の値は参照値って事?
> 察してはいたけどByval xxx$って嘘じゃん
逆にC知ってると、文字列がプリミティブってのにものすごい
違和感があるよ。「ああ、内部で変換してんだな。そういうものだと
思っておこう」と、自分を納得させる。
607579 (テテンテンテン MM8f-m/Zw)
2021/05/01(土) 22:45:28.00ID:4GddeLjJM >>603
条件に合うものがないと ReDim 金額(1 To 0) の様になってエラーになる
VBAではReDimで空の配列は作れないので条件に合うものがない場合を場合分けして処理するしかない
例えば条件に合うものがない場合はD1を空にするなら最後の2行を
Dim 式 As String
If LBound(金額) < 書込行 <= Then
ReDim Preserve 金額(LBound(金額) To 書込行 - 1)
式 = Join("+", 金額)
Else
式 = """"""
End If
Range("D1").Formula = "=" & 式
とかにすればいい
条件に合うものがないと ReDim 金額(1 To 0) の様になってエラーになる
VBAではReDimで空の配列は作れないので条件に合うものがない場合を場合分けして処理するしかない
例えば条件に合うものがない場合はD1を空にするなら最後の2行を
Dim 式 As String
If LBound(金額) < 書込行 <= Then
ReDim Preserve 金額(LBound(金額) To 書込行 - 1)
式 = Join("+", 金額)
Else
式 = """"""
End If
Range("D1").Formula = "=" & 式
とかにすればいい
608デフォルトの名無しさん (ワッチョイ df4f-U2UV)
2021/05/01(土) 22:53:14.11ID:1m8BqwmN0 >>605
>hako(i) = Worksheets("Sheet1").Range(Worksheets("Sheet1").Cells(1,1), Worksheets("Sheet1").Cells(1,1)).Value
の、
Worksheets("Sheet1").Cells(1,1)が指してる先が数字でないなんてオチはないよね?
>hako(i) = Worksheets("Sheet1").Range(Worksheets("Sheet1").Cells(1,1), Worksheets("Sheet1").Cells(1,1)).Value
の、
Worksheets("Sheet1").Cells(1,1)が指してる先が数字でないなんてオチはないよね?
609デフォルトの名無しさん (ワッチョイ 8701-I0Kk)
2021/05/01(土) 23:00:47.42ID:T1b9C9NF0610デフォルトの名無しさん (ワッチョイ 0702-h3Dk)
2021/05/01(土) 23:06:25.35ID:v351dbwI0 >>607
すごい!
ちょっと動くようになりました。
二行目のif文の<=って消していいですかね?
消さないとエラーになってしまったので
ただ、式=join("+",金額)のところで型が一致しないエラーになりました
すごい!
ちょっと動くようになりました。
二行目のif文の<=って消していいですかね?
消さないとエラーになってしまったので
ただ、式=join("+",金額)のところで型が一致しないエラーになりました
611デフォルトの名無しさん (ワッチョイ a78e-MiMN)
2021/05/01(土) 23:16:54.43ID:d9MtRRCh0 いつものあいつ確定
612579 (テテンテンテン MM8f-m/Zw)
2021/05/01(土) 23:44:05.17ID:ll+wAnFJM613デフォルトの名無しさん (ワッチョイ 0702-h3Dk)
2021/05/01(土) 23:54:50.36ID:v351dbwI0614デフォルトの名無しさん (ワッチョイ 7fda-x7Q7)
2021/05/02(日) 09:42:00.36ID:1V5M4ibt0 >>590
PowerPivotでDAX関数使えば出来るかも。
PowerPivotでDAX関数使えば出来るかも。
615デフォルトの名無しさん (ワッチョイ 7fda-x7Q7)
2021/05/02(日) 09:58:00.77ID:1V5M4ibt0616デフォルトの名無しさん (ワッチョイ 8768-YF1U)
2021/05/02(日) 10:03:52.79ID:uM4tl5TR0 いきなり宣伝てアンタ
617579 (テテンテンテン MM8f-m/Zw)
2021/05/02(日) 10:19:11.69ID:72ULtZJbM618デフォルトの名無しさん (ワッチョイ 8701-I0Kk)
2021/05/02(日) 10:26:38.41ID:GQme+tVN0 >>617
アプリケーション定義エラーまたはオブジェクトの定義エラーですってなります
アプリケーション定義エラーまたはオブジェクトの定義エラーですってなります
619デフォルトの名無しさん (ワッチョイ 7fda-x7Q7)
2021/05/02(日) 11:31:48.49ID:1V5M4ibt0 2スレ目に何か書いとこうと思って、
とりあえず考えついたのがこれくらいしかなかった。
スンマセン
とりあえず考えついたのがこれくらいしかなかった。
スンマセン
620デフォルトの名無しさん (テテンテンテン MM8f-m/Zw)
2021/05/02(日) 11:41:15.21ID:nZ1YzZjsM >>618
>>617で頓珍漢なこと書いてたわスマン、数値かどうかは関係ないわ
> hako(i) = Worksheets("Sheet1").Range(Worksheets("Sheet1").Cells(1,1), Worksheets("Sheet1").Cells(1,1)).Value
でエラーになるのか
> 実際は縦が動いていきます
の方でエラーになるのかどっち?
上でエラーになるなら1回目なのか何回かやったらエラーになるのかのどっち?
下でエラーになるならエラーになった時のセルの指定がおかしくないかを確認
あとシートの指定は変数に入れるかWithを使った方が楽だよ
With Worksheets("Sheet1")
For i = 0 to 回数
hako(i) = .Range(.Cells(1,1), .Cells(1,1)).Value
Next
End With
>>617で頓珍漢なこと書いてたわスマン、数値かどうかは関係ないわ
> hako(i) = Worksheets("Sheet1").Range(Worksheets("Sheet1").Cells(1,1), Worksheets("Sheet1").Cells(1,1)).Value
でエラーになるのか
> 実際は縦が動いていきます
の方でエラーになるのかどっち?
上でエラーになるなら1回目なのか何回かやったらエラーになるのかのどっち?
下でエラーになるならエラーになった時のセルの指定がおかしくないかを確認
あとシートの指定は変数に入れるかWithを使った方が楽だよ
With Worksheets("Sheet1")
For i = 0 to 回数
hako(i) = .Range(.Cells(1,1), .Cells(1,1)).Value
Next
End With
621デフォルトの名無しさん (ワッチョイ 8701-I0Kk)
2021/05/02(日) 12:12:35.89ID:GQme+tVN0 >>620
独学でやってたのでその辺の知識がなくてw
withで指定するといちいち書かなくて済むんですね
エラーになるのはもう1度目からです
> hako(i) = Worksheets("Sheet1").Range(Worksheets("Sheet1").Cells(1,1), Worksheets("Sheet1").Cells(1,1)).Value
ここの時点でエラーになります。
独学でやってたのでその辺の知識がなくてw
withで指定するといちいち書かなくて済むんですね
エラーになるのはもう1度目からです
> hako(i) = Worksheets("Sheet1").Range(Worksheets("Sheet1").Cells(1,1), Worksheets("Sheet1").Cells(1,1)).Value
ここの時点でエラーになります。
622デフォルトの名無しさん (テテンテンテン MM8f-m/Zw)
2021/05/02(日) 12:42:32.96ID:72ULtZJbM >>621
切り分けとしてエラーになった時にイミディエイトウィンドウで
hako(i) = Worksheets("Sheet1").Range("A1").Value
Debug.Print Worksheets("Sheet1").Range(Worksheets("Sheet1").Cells(1,1), Worksheets("Sheet1").Cells(1,1)).Value
Debug.Print Worksheets("Sheet1").Cells(1,1).Address
を実行してみて
切り分けとしてエラーになった時にイミディエイトウィンドウで
hako(i) = Worksheets("Sheet1").Range("A1").Value
Debug.Print Worksheets("Sheet1").Range(Worksheets("Sheet1").Cells(1,1), Worksheets("Sheet1").Cells(1,1)).Value
Debug.Print Worksheets("Sheet1").Cells(1,1).Address
を実行してみて
623デフォルトの名無しさん (ワッチョイ 8701-I0Kk)
2021/05/02(日) 13:21:44.18ID:GQme+tVN0624デフォルトの名無しさん (スプッッ Sd7f-odQU)
2021/05/02(日) 13:32:29.72ID:MDNwXGbEd エラーが出なくなったらよかった。
他に問題は?
解決?
他に問題は?
解決?
625デフォルトの名無しさん (ワッチョイ dfe6-HlUj)
2021/05/02(日) 18:51:27.95ID:U5GvC0it0 こういう人って文法は理解できないけど
自然言語みたいに丸暗記で覚えていくのかな?
自然言語みたいに丸暗記で覚えていくのかな?
626デフォルトの名無しさん (ワッチョイ 8768-YF1U)
2021/05/02(日) 19:13:05.11ID:uM4tl5TR0 〜10年後〜
「あ、ちゃんと覚えたほうが早かったんだ」
と、表面をなぞりまくる内に本質まで見えてきて最後に気づく人もいる
本業じゃないからね。仕方ないね。
「あ、ちゃんと覚えたほうが早かったんだ」
と、表面をなぞりまくる内に本質まで見えてきて最後に気づく人もいる
本業じゃないからね。仕方ないね。
627デフォルトの名無しさん (ワッチョイ a763-OedE)
2021/05/02(日) 19:18:03.74ID:o6kkyx/e0 類型から共通点を見出して次第にルールを覚えるのは自然界の学習形態に沿っている
628デフォルトの名無しさん (ワッチョイ dfe6-HlUj)
2021/05/02(日) 19:36:47.01ID:U5GvC0it0 古いBASICの構文が難しいからそこだけはしっかりと覚えたほうが早いんだけどね
629デフォルトの名無しさん (アウアウウー Saab-PU2s)
2021/05/03(月) 02:05:26.31ID:q65flA4Da 10年後もこんなことやってるとかw
630デフォルトの名無しさん (JP 0Hcb-OedE)
2021/05/03(月) 03:55:18.41ID:xnojJk7TH 一度普及した物は、減り続けても簡単にはなくならんよ
PC-9801だっていまだに現役で使ってる工場とかあるし
サポートがなくなって10年後でもVBAを使う職場は間違いなく世界中のどこかに残ってる
PC-9801だっていまだに現役で使ってる工場とかあるし
サポートがなくなって10年後でもVBAを使う職場は間違いなく世界中のどこかに残ってる
631デフォルトの名無しさん (アウアウウー Saab-PU2s)
2021/05/03(月) 04:12:16.92ID:mvyi8XcRa 10年たってもエラーが直んないとかやっているのかと言う意味だ
632デフォルトの名無しさん (アウアウウー Saab-5hFs)
2021/05/03(月) 07:31:09.68ID:o8xt4Q4Ca633デフォルトの名無しさん (ワッチョイ 8710-5cEd)
2021/05/03(月) 10:36:54.14ID:lox1tlFa0634デフォルトの名無しさん (ワッチョイ dfda-PU2s)
2021/05/03(月) 10:55:13.04ID:xPMfOD2I0 もはや社会人いないな
635デフォルトの名無しさん (テテンテンテン MM8f-m/Zw)
2021/05/03(月) 11:10:44.37ID:l6TI+yt9M636デフォルトの名無しさん (ワッチョイ 7fda-OedE)
2021/05/03(月) 12:03:06.50ID:DAKb1uRk0 0から始まるときは 回数-1 じゃね
637デフォルトの名無しさん (ワッチョイ 5fba-eh0L)
2021/05/03(月) 14:59:49.63ID:po5ohrNh0 ttps://pastebin.pl/view/3a98fdc0
サムネイル画像の1番をクリックして表示された画像を順々にダウンロードするクローラみたいなものを作ろうとしてるのですが、
どうやったらサムネイル画像の1番めをクリックして表示された画像のURLを取得できるでしょうか?
サムネイル画像の1番をクリックして表示された画像を順々にダウンロードするクローラみたいなものを作ろうとしてるのですが、
どうやったらサムネイル画像の1番めをクリックして表示された画像のURLを取得できるでしょうか?
638デフォルトの名無しさん (ワッチョイ a72c-zL94)
2021/05/03(月) 18:17:11.84ID:iRbOallH0 HTML の中には、サムネイル画像をクリックした時の、飛び先のリンクが書いてある。
(ただし、下には、@の文字を追加した)
最初の画像なら、
<a href="http@s://e-hentai.org/s/78a8543e34/1727798-1">
うまくスクレイピングすれば、このURL を抜き出せるのでは?
(ただし、下には、@の文字を追加した)
最初の画像なら、
<a href="http@s://e-hentai.org/s/78a8543e34/1727798-1">
うまくスクレイピングすれば、このURL を抜き出せるのでは?
639デフォルトの名無しさん (ワッチョイ c710-TNk6)
2021/05/03(月) 20:20:21.53ID:BZOTVT3k0 シート上の複数のリストボックスの選択済みをボタンを押すと
一括クリアしたいと思っています。
For i = 0 To ActiveSheet.OLEObjects("ListBox1").ListCount - 1
If ActiveSheet.OLEObjects("ListBox1").Selected(i) = True Then
ActiveSheet.OLEObjects("ListBox1").Selected(i) = False
End If
Next i
このコードではオブジェクトがないとエラーになります。
どなたかご教授ください。
一括クリアしたいと思っています。
For i = 0 To ActiveSheet.OLEObjects("ListBox1").ListCount - 1
If ActiveSheet.OLEObjects("ListBox1").Selected(i) = True Then
ActiveSheet.OLEObjects("ListBox1").Selected(i) = False
End If
Next i
このコードではオブジェクトがないとエラーになります。
どなたかご教授ください。
640デフォルトの名無しさん (ワッチョイ 7f8e-MiMN)
2021/05/03(月) 22:04:23.29ID:0Wb20ZWw0 いつものあいつ
641デフォルトの名無しさん (ワッチョイ df3d-qkI6)
2021/05/03(月) 22:25:43.32ID:iSjmevx80 そりゃオブジェクト指定してるのにオブジェクトなかったらエラーになる
642デフォルトの名無しさん (ワッチョイ 7f10-gUWx)
2021/05/03(月) 23:09:22.50ID:Z9IP11pi0 アクティブやセレクトの多用はエラー処理が面倒くさくなる場合が多い
根本的なトコロから考え直すヨロシ
根本的なトコロから考え直すヨロシ
643デフォルトの名無しさん (JP 0Hcb-sT2V)
2021/05/04(火) 00:04:08.03ID:ZMKTnAbRH >>639
ボックスが複数あるのか、選択肢が複数あるのか、どっち?
ボックスが複数あるのか、選択肢が複数あるのか、どっち?
644デフォルトの名無しさん (ワッチョイ 8710-5cEd)
2021/05/04(火) 00:21:07.48ID:YgbBuLel0 >>635
どっちもしてないじゃん
どっちもしてないじゃん
645デフォルトの名無しさん (アウアウウー Saab-5hFs)
2021/05/04(火) 19:03:55.38ID:19cryuYQa なるほど
"sheet1"が有りません的なエラーなんだ
これは勉強になった
"sheet1"が有りません的なエラーなんだ
これは勉強になった
646デフォルトの名無しさん (ワッチョイ df42-YF1U)
2021/05/04(火) 23:49:30.76ID:uwH+LPLT0 一生懸命マクロを組んだのに実は標準機能で実現できると知ったときのガッカリ感
647デフォルトの名無しさん (ドコグロ MMeb-c369)
2021/05/05(水) 00:05:02.26ID:6kHGIPV/M 何を作ったかは知らんけど付加価値を追加すればええやん
俺はカラーパレットと並び替えを付加価値を付けて作って使っているけどな
俺はカラーパレットと並び替えを付加価値を付けて作って使っているけどな
648デフォルトの名無しさん (ワッチョイ 8710-5cEd)
2021/05/05(水) 01:59:04.74ID:OXlCsy+h0 ショートカットキー押したらアクティブセルのフォントや背景の色番号が
クリップボードにコピーされるちょいマクロを作ってる
マクロ作るときに欲しい色番号をすぐ書けるので便利
クリップボードにコピーされるちょいマクロを作ってる
マクロ作るときに欲しい色番号をすぐ書けるので便利
649デフォルトの名無しさん (ブーイモ MMcb-DFSD)
2021/05/05(水) 09:07:35.23ID:LGgg24P3M >>648
VBA初学者の誰もが通る道だな
VBA初学者の誰もが通る道だな
650デフォルトの名無しさん (ワッチョイ 075f-2Bcu)
2021/05/05(水) 09:17:08.30ID:4t234ePa0 人の作ったデータベースでIDと商品名がひとつのセルに入力されてるから個別にクリップボードにコピーするマクロを作ったな
651デフォルトの名無しさん (ワッチョイ 8768-YF1U)
2021/05/05(水) 09:38:04.66ID:CaKZkb7J0 >>646
レベルアップしたよ。その経験は無駄にはなってないよ
レベルアップしたよ。その経験は無駄にはなってないよ
652デフォルトの名無しさん (ワッチョイ dff0-Ew5U)
2021/05/05(水) 10:04:42.11ID:nWfClEZV0 Private Sub Worksheet_Change(ByVal Target As Range)
If _
Target.Address <> "$C$2" _
Or (IsNumeric(Target)) _
Then
Exit Sub
End If
main = Cells(1, 3).Value
main2 = Cells(2, 3).Value
If (Int(main) - (main)) = 0 Then
Sheets("DB").Cells(2, 3) = main
Else
Sheets("DB").Cells(2, 3) = Int(main2)
End If
End Sub
If _
Target.Address <> "$C$2" _
Or (IsNumeric(Target)) _
Then
Exit Sub
End If
main = Cells(1, 3).Value
main2 = Cells(2, 3).Value
If (Int(main) - (main)) = 0 Then
Sheets("DB").Cells(2, 3) = main
Else
Sheets("DB").Cells(2, 3) = Int(main2)
End If
End Sub
653デフォルトの名無しさん (ワッチョイ dff0-Ew5U)
2021/05/05(水) 10:54:54.17ID:nWfClEZV0 Private Sub Worksheet_Change(ByVal Target As Range)
1つ目
If _
Target.Address <> "$C$2" _
Or (IsNumeric(Target)) _
Then
Exit Sub
End If
main = Cells(1, 3).Value
main2 = Cells(2, 3).Value
If (Int(main) - (main)) = 0 Then
Sheets("DB").Cells(2, 3) = main
Else
Sheets("DB").Cells(2, 3) = Int(main2)
End If
End Sub
2つ目
If Intersect(Target, Range("A1:C2")) Is Nothing Or Target.Cells.Count > 6 Then Exit Sub
Columns("d").ClearContents
Application.EnableEvents = False
日付1 = DateSerial(Range("A1"), Range("B1"), Range("C1"))
日付2 = DateSerial(Range("A2"), Range("B2"), Range("C2"))
For 日付 = 日付1 To 日付2
r = r + 1
Cells(r, "D") = 日付
Next
Application.EnableEvents = True
End Sub
一つ目と二つ目を合わせるにはどうしたらいいでしょうか?
前にも質問してググってみたのですが今の私のレベルでは手に負えなくて困ってます
ご教授ください
1つ目
If _
Target.Address <> "$C$2" _
Or (IsNumeric(Target)) _
Then
Exit Sub
End If
main = Cells(1, 3).Value
main2 = Cells(2, 3).Value
If (Int(main) - (main)) = 0 Then
Sheets("DB").Cells(2, 3) = main
Else
Sheets("DB").Cells(2, 3) = Int(main2)
End If
End Sub
2つ目
If Intersect(Target, Range("A1:C2")) Is Nothing Or Target.Cells.Count > 6 Then Exit Sub
Columns("d").ClearContents
Application.EnableEvents = False
日付1 = DateSerial(Range("A1"), Range("B1"), Range("C1"))
日付2 = DateSerial(Range("A2"), Range("B2"), Range("C2"))
For 日付 = 日付1 To 日付2
r = r + 1
Cells(r, "D") = 日付
Next
Application.EnableEvents = True
End Sub
一つ目と二つ目を合わせるにはどうしたらいいでしょうか?
前にも質問してググってみたのですが今の私のレベルでは手に負えなくて困ってます
ご教授ください
654デフォルトの名無しさん (ワッチョイ 8768-YF1U)
2021/05/05(水) 10:58:18.12ID:CaKZkb7J0655デフォルトの名無しさん (ワッチョイ 075f-2Bcu)
2021/05/05(水) 11:08:55.56ID:4t234ePa0 この人教えるには金貰わなきゃ割に合わないくらいめんどい
656デフォルトの名無しさん (ワッチョイ dff0-Ew5U)
2021/05/05(水) 11:10:46.24ID:nWfClEZV0 すみません!
A B C D
1 2021 1 1 1/1
2 2021 1 5 1/2
1/3
1/4
1/5
↑のようにDateが入った表で
1/1と1/5までの日付をD列に表示したいです
もし2/4から2/6なら
A B C D
1 2021 1 1 1/1
2 2021 1 5 1/2
1/3
1/4
1/5
↑のようにDateが入った表で
1/1と1/5までの日付をD列に表示したいです
もし2/4から2/6なら
657デフォルトの名無しさん (ワッチョイ dff0-Ew5U)
2021/05/05(水) 11:12:17.39ID:nWfClEZV0 すみません!
A B C D
1 2021 1 1 1/1
2 2021 1 5 1/2
1/3
1/4
1/5
↑のようにDateが入った表で
1/1と1/5までの日付をD列に表示したいです
もし2/4から2/6なら2/4、2/5、2/6を
A B C D
1 2021 1 1 1/1
2 2021 1 5 1/2
1/3
1/4
1/5
↑のようにDateが入った表で
1/1と1/5までの日付をD列に表示したいです
もし2/4から2/6なら2/4、2/5、2/6を
658デフォルトの名無しさん (ワッチョイ dff0-Ew5U)
2021/05/05(水) 11:15:04.54ID:nWfClEZV0 A B C D
1 2021 1 1 1/1
2 2021 1 5 1/2
1/3
1/4
1/5
↑のようにDateが入った表で
1/1と1/5までの日付をD列に表示したいです
もし2/4から2/6なら2/4、2/5、2/6をD列に表示したいです
もしC2に数字以外の文字等が入った場合はC1の数字をC2に来るように出来るでしょうか?
1 2021 1 1 1/1
2 2021 1 5 1/2
1/3
1/4
1/5
↑のようにDateが入った表で
1/1と1/5までの日付をD列に表示したいです
もし2/4から2/6なら2/4、2/5、2/6をD列に表示したいです
もしC2に数字以外の文字等が入った場合はC1の数字をC2に来るように出来るでしょうか?
659デフォルトの名無しさん (ワッチョイ dff0-Ew5U)
2021/05/05(水) 11:16:11.30ID:nWfClEZV0 間違えて
何回も連投してしまいました
すみません
何回も連投してしまいました
すみません
660デフォルトの名無しさん (ワッチョイ dff0-Ew5U)
2021/05/05(水) 11:31:02.17ID:nWfClEZV0661デフォルトの名無しさん (アウアウウー Saab-5hFs)
2021/05/05(水) 13:52:36.59ID:DQe3j4Yqa うむ
他人に説明するときは5w1hがきほん
だいぶよくなったよな
他人に説明するときは5w1hがきほん
だいぶよくなったよな
662デフォルトの名無しさん (JP 0Hcb-sT2V)
2021/05/05(水) 14:24:16.43ID:zgzGcqkdH 質問とソースの両方見ても判定条件がよくわからん
超エスパーすると、数字が5個か6個入ってたらスタートか?
超エスパーすると、数字が5個か6個入ってたらスタートか?
663デフォルトの名無しさん (ワッチョイ 8768-YF1U)
2021/05/05(水) 14:29:49.98ID:CaKZkb7J0 >>656
数式じゃダメなの?
数式だと3分で出来たけど
D1=DATE(A1,B1,C1)
D2=IF(DATE($A$2,$B$2,$C$2)<($D1+1),"",$D1+1)
D2を下にオートフィル
数式じゃダメなの?
数式だと3分で出来たけど
D1=DATE(A1,B1,C1)
D2=IF(DATE($A$2,$B$2,$C$2)<($D1+1),"",$D1+1)
D2を下にオートフィル
664デフォルトの名無しさん (ワッチョイ a72c-zL94)
2021/05/05(水) 14:33:33.57ID:Dw+PnwkB0 Ruby なら、
require 'csv'
require 'date'
input = <<"EOT"
year,month,day
2021,5,31
2021,6,2
EOT
options = { :headers => true } # ヘッダー有り
csv_ary = CSV.parse( input, options )
tmp_from = csv_ary[ 0 ]
tmp_to = csv_ary[ 1 ]
from_day = Date.new( tmp_from[ 0 ].to_i, tmp_from[ 1 ].to_i, tmp_from[ 2 ].to_i )
to_day = Date.new( tmp_to[ 0 ].to_i, tmp_to[ 1 ].to_i, tmp_to[ 2 ].to_i )
Range.new( from_day, to_day ).each{ |day| puts day }
出力
2021-05-31
2021-06-01
2021-06-02
require 'csv'
require 'date'
input = <<"EOT"
year,month,day
2021,5,31
2021,6,2
EOT
options = { :headers => true } # ヘッダー有り
csv_ary = CSV.parse( input, options )
tmp_from = csv_ary[ 0 ]
tmp_to = csv_ary[ 1 ]
from_day = Date.new( tmp_from[ 0 ].to_i, tmp_from[ 1 ].to_i, tmp_from[ 2 ].to_i )
to_day = Date.new( tmp_to[ 0 ].to_i, tmp_to[ 1 ].to_i, tmp_to[ 2 ].to_i )
Range.new( from_day, to_day ).each{ |day| puts day }
出力
2021-05-31
2021-06-01
2021-06-02
665デフォルトの名無しさん (ワッチョイ df3d-qkI6)
2021/05/05(水) 14:39:31.63ID:Peytj0fp0 >>664
スレ違い
スレ違い
666デフォルトの名無しさん (ワッチョイ 8768-YF1U)
2021/05/05(水) 14:45:18.78ID:CaKZkb7J0667デフォルトの名無しさん (ブーイモ MMcf-DFSD)
2021/05/05(水) 14:50:07.30ID:tepg5eqrM >>666
プログラム板に常駐してるキチガイ知らないの?
プログラム板に常駐してるキチガイ知らないの?
668デフォルトの名無しさん (ワッチョイ 8768-YF1U)
2021/05/05(水) 14:52:08.71ID:CaKZkb7J0669デフォルトの名無しさん (ワッチョイ 7f8e-MiMN)
2021/05/05(水) 15:01:03.66ID:CAyVZDxB0 そもそもいつものあいつだし
670デフォルトの名無しさん (ワッチョイ dff0-Ew5U)
2021/05/05(水) 16:38:09.75ID:nWfClEZV0 みなさんを混乱させてしまいまして
もうしわけありません
もうしわけありません
671デフォルトの名無しさん (ワッチョイ c72c-eh0L)
2021/05/05(水) 20:02:01.88ID:mEvPZJoP0 VB6やVB.NetでVBA用のDLLビルドしてるんだけど、
DLL側のクラスのメンバ構成に変更加えてリビルドしたら、それを参照しているVBAのプロジェクト側で、いちいちDLL参照解除→DLL再参照を手作業でやらんとアカンの?
面倒くさいんやけど。
って、これまでの流れ見たら、スレチな質問になるんかな。
DLL側のクラスのメンバ構成に変更加えてリビルドしたら、それを参照しているVBAのプロジェクト側で、いちいちDLL参照解除→DLL再参照を手作業でやらんとアカンの?
面倒くさいんやけど。
って、これまでの流れ見たら、スレチな質問になるんかな。
672デフォルトの名無しさん (ワッチョイ 7f10-gUWx)
2021/05/05(水) 22:06:37.83ID:XLRqwo1W0 DLLてデルルでいいの?
673デフォルトの名無しさん (ワッチョイ dfe6-HlUj)
2021/05/05(水) 22:10:12.24ID:TYeLzB6b0 ダリラ
674デフォルトの名無しさん (ワッチョイ 8768-YF1U)
2021/05/05(水) 22:14:38.02ID:CaKZkb7J0676デフォルトの名無しさん (ワッチョイ c72c-eh0L)
2021/05/05(水) 22:23:14.23ID:mEvPZJoP0 質問した俺が間違っていた。
677デフォルトの名無しさん (ワッチョイ 7f10-gUWx)
2021/05/05(水) 22:29:51.86ID:XLRqwo1W0 「質問した俺が間違っていた」
つまりこれをSOM、読み方はデルル
つまりこれをSOM、読み方はデルル
678デフォルトの名無しさん (ワッチョイ 672f-zL94)
2021/05/05(水) 23:07:25.23ID:gm6jmmXW0679デフォルトの名無しさん (ワッチョイ c72c-eh0L)
2021/05/06(木) 06:00:24.75ID:fowE0ZYM0 >>678
レジストリには間違いなく登録してる。
例えばVB.Netで実装するDLL側で、公開するクラスのメンバ関数を一つ増やしてリビルドすると、それを参照しているVBA(Excel)実行時にエラーが出る。VBAプロジェクトのコンパイルもできなくなる。
この時、DLL参照設定解除→DLL再参照をやると正常に読み込まれる。
なお上の例では、VB.Net実装のDLL側で増やしたクラスのメンバ関数を消去して元に戻した上で再リビルドすると、DLL参照設定解除→DLL再参照をしなくても、再びDLLが正常に読み込まれる模様w。
レジストリには間違いなく登録してる。
例えばVB.Netで実装するDLL側で、公開するクラスのメンバ関数を一つ増やしてリビルドすると、それを参照しているVBA(Excel)実行時にエラーが出る。VBAプロジェクトのコンパイルもできなくなる。
この時、DLL参照設定解除→DLL再参照をやると正常に読み込まれる。
なお上の例では、VB.Net実装のDLL側で増やしたクラスのメンバ関数を消去して元に戻した上で再リビルドすると、DLL参照設定解除→DLL再参照をしなくても、再びDLLが正常に読み込まれる模様w。
680デフォルトの名無しさん (アウアウウー Saab-FYM5)
2021/05/06(木) 12:12:28.40ID:EE3pjJQ7a681デフォルトの名無しさん (ワッチョイ df11-TNk6)
2021/05/06(木) 17:15:18.35ID:YSpOci5b0 質問です
下記のように重複している項目を除いて合計値を算出するコードを教えてください。
調べたところ連想配列?を使えば良いと書いておりましたが、難しくて使い方がよくわかりませんでした・・・
素人すぎて申し訳ないですが、宜しくお願いします。
https://i.imgur.com/xJ71PFz.png
下記のように重複している項目を除いて合計値を算出するコードを教えてください。
調べたところ連想配列?を使えば良いと書いておりましたが、難しくて使い方がよくわかりませんでした・・・
素人すぎて申し訳ないですが、宜しくお願いします。
https://i.imgur.com/xJ71PFz.png
682デフォルトの名無しさん (ワッチョイ 672f-zL94)
2021/05/06(木) 17:31:33.29ID:5qdpVrsh0683デフォルトの名無しさん (ブーイモ MM2b-5ohd)
2021/05/06(木) 18:29:38.21ID:jNBg/veuM >>681
SUMIFで良いじゃんと思ったけど重複は除くのか面倒くせぇな
配列にA〜Cのデータを代入するだろ?
4列目にりんごなら1、みかんなら2を頭に付けてCのデータを連結した上で数値化して放り込むだろ?
そしたら
For RowCnt = LBound(TgtAry, 1) to UBound(TgtAry, 1)
For RowCtR = Ubound(TgTAry, 1) to RowCnt
If TgtAry(RowCnt, UBound(TgtAry, 2)) > TgtAry(RowCtR, UBound(TgtAry, 2)) Then
SavAry([略]) = TgtAry(RowCnt, [略])
TgtAry(RowCnt, [略]) = TgtAry(RowCtR, [略])
TgtAry(RowCtR,[略]) = SavAry([略])
[省略]
End If
Next
Next
みたいな事をやって配列をソートしてやるだろ?
あとは上から順に見ていけば4列目を無視しても重複が弾けるんじゃねぇかな?
SUMIFで良いじゃんと思ったけど重複は除くのか面倒くせぇな
配列にA〜Cのデータを代入するだろ?
4列目にりんごなら1、みかんなら2を頭に付けてCのデータを連結した上で数値化して放り込むだろ?
そしたら
For RowCnt = LBound(TgtAry, 1) to UBound(TgtAry, 1)
For RowCtR = Ubound(TgTAry, 1) to RowCnt
If TgtAry(RowCnt, UBound(TgtAry, 2)) > TgtAry(RowCtR, UBound(TgtAry, 2)) Then
SavAry([略]) = TgtAry(RowCnt, [略])
TgtAry(RowCnt, [略]) = TgtAry(RowCtR, [略])
TgtAry(RowCtR,[略]) = SavAry([略])
[省略]
End If
Next
Next
みたいな事をやって配列をソートしてやるだろ?
あとは上から順に見ていけば4列目を無視しても重複が弾けるんじゃねぇかな?
684デフォルトの名無しさん (アウウィフ FFab-FYM5)
2021/05/06(木) 18:48:02.86ID:2oPZ0CXkF 連想配列だと練習問題みたいな課題やね
set ## = createobject("scripting.dictionary")
set @@ = createobject("scripting.dictionary")
for r = 2 to cells(rows.count, 1).end(xlup).row
if not ##.exists(cells(r, 1).value & cells(r, 2).value) then
##.add cells(r, 1).value & cells(r, 2).value
@@(cells(r, 1).value) = @@(cells(r, 1).value) + cells(r, 3).value
end if
next r
for each key in @@
rr = rr + 1
cells(rr + 1 , 5) = key
cells(rr + 1, 6) = @@(key)
next key
今スマホだから試せてないけど、こんな感じでどうだべ?
set ## = createobject("scripting.dictionary")
set @@ = createobject("scripting.dictionary")
for r = 2 to cells(rows.count, 1).end(xlup).row
if not ##.exists(cells(r, 1).value & cells(r, 2).value) then
##.add cells(r, 1).value & cells(r, 2).value
@@(cells(r, 1).value) = @@(cells(r, 1).value) + cells(r, 3).value
end if
next r
for each key in @@
rr = rr + 1
cells(rr + 1 , 5) = key
cells(rr + 1, 6) = @@(key)
next key
今スマホだから試せてないけど、こんな感じでどうだべ?
685デフォルトの名無しさん (ワッチョイ c72c-eh0L)
2021/05/06(木) 19:08:24.28ID:fowE0ZYM0686デフォルトの名無しさん (ワッチョイ 7fb0-BCf7)
2021/05/06(木) 19:14:13.18ID:95uMi6p80687デフォルトの名無しさん (ワッチョイ 8768-YF1U)
2021/05/06(木) 19:40:05.49ID:VTnVqyux0 キーは若干不安なので
=A2&"_"&B2&"_"&C2
ぐらいにはした方が良いと思う
=A2&"_"&B2&"_"&C2
ぐらいにはした方が良いと思う
688デフォルトの名無しさん (ワッチョイ a72c-zL94)
2021/05/06(木) 20:15:22.86ID:b7Mkjg0R0 >>681
Ruby では、
require 'csv'
input = <<"EOT"
りんご,A,2
りんご,B,4
みかん,D,1
りんご,B,100
EOT
input_ary = CSV.parse( input ) # 2次元配列
# 0/1列目が同じものを排除する。先に現れた行が使われる。「りんご,B,100」は使われない
input_ary.uniq! { |row| [ row[ 0 ], row[ 1 ] ] }
# [["りんご", "A", "2"], ["りんご", "B", "4"], ["みかん", "D", "1"]]
result = [ ]
# フルーツ名でグループ化する
input_ary.group_by { |row| row[ 0 ] }.each do |row|
sum = row[ 1 ].sum{ |row| row[ 2 ].to_i } # 合計
result.push [ row[ 0 ], sum ]
end
pp result #=> [ ["りんご", 6], ["みかん", 1] ]
Ruby では、
require 'csv'
input = <<"EOT"
りんご,A,2
りんご,B,4
みかん,D,1
りんご,B,100
EOT
input_ary = CSV.parse( input ) # 2次元配列
# 0/1列目が同じものを排除する。先に現れた行が使われる。「りんご,B,100」は使われない
input_ary.uniq! { |row| [ row[ 0 ], row[ 1 ] ] }
# [["りんご", "A", "2"], ["りんご", "B", "4"], ["みかん", "D", "1"]]
result = [ ]
# フルーツ名でグループ化する
input_ary.group_by { |row| row[ 0 ] }.each do |row|
sum = row[ 1 ].sum{ |row| row[ 2 ].to_i } # 合計
result.push [ row[ 0 ], sum ]
end
pp result #=> [ ["りんご", 6], ["みかん", 1] ]
689デフォルトの名無しさん (ワッチョイ 7fb0-BCf7)
2021/05/06(木) 20:23:53.60ID:95uMi6p80690デフォルトの名無しさん (ワッチョイ 8768-YF1U)
2021/05/06(木) 21:11:34.82ID:VTnVqyux0 >>681
元データいじっていいなら重複の削除が超早い(ダメでもコピーすればいいだけだけど)
ってかSQLのサブクエリなら一行で行けそうだ
Sub Macro5()
Range("a:c").RemoveDuplicates Array(1, 2), xlYes
ActiveWorkbook.PivotCaches.Create(xlDatabase, Range("a:c")).CreatePivotTable Range("e1"), "p1"
Set p1 = ActiveSheet.PivotTables("p1")
p1.PivotFields("com").Orientation = xlRowField
p1.PivotFields("com").Position = 1
p1.AddDataField p1.PivotFields("v"), "合計 / v", xlSum
End Sub
元データいじっていいなら重複の削除が超早い(ダメでもコピーすればいいだけだけど)
ってかSQLのサブクエリなら一行で行けそうだ
Sub Macro5()
Range("a:c").RemoveDuplicates Array(1, 2), xlYes
ActiveWorkbook.PivotCaches.Create(xlDatabase, Range("a:c")).CreatePivotTable Range("e1"), "p1"
Set p1 = ActiveSheet.PivotTables("p1")
p1.PivotFields("com").Orientation = xlRowField
p1.PivotFields("com").Position = 1
p1.AddDataField p1.PivotFields("v"), "合計 / v", xlSum
End Sub
691デフォルトの名無しさん (ワッチョイ 8768-YF1U)
2021/05/06(木) 21:12:21.95ID:VTnVqyux0 すまん、"com"は"会社名"、"v"は"値段"などに適宜書き換えてくれ
692デフォルトの名無しさん (ワッチョイ df42-YF1U)
2021/05/06(木) 22:14:14.24ID:zoaLFLbx0 D列に
=COUNTIF(B$2:B2,B2)
数値合計に
=SUMIFS($C$2:$C$9,$A$2:$A$9,"=" & E2,$D$2:$D$9,"=1")
=COUNTIF(B$2:B2,B2)
数値合計に
=SUMIFS($C$2:$C$9,$A$2:$A$9,"=" & E2,$D$2:$D$9,"=1")
693デフォルトの名無しさん (ワッチョイ 7f8e-MiMN)
2021/05/06(木) 23:20:33.75ID:srB+AETb0 >>681
しつこい
しつこい
694デフォルトの名無しさん (ワッチョイ eada-K+t/)
2021/05/07(金) 04:04:27.47ID:UcyGqCZa0 いまだにIFとISERROR組み合わせてエラー回避やってる人いるんだ。。。??
695デフォルトの名無しさん (ワッチョイ 2301-UHqe)
2021/05/07(金) 04:24:40.54ID:f/k3XSIv0 流石にいまだにVBA使ってるニキの煽りは違うなw
696デフォルトの名無しさん (ワッチョイ beb0-Asel)
2021/05/07(金) 06:55:01.06ID:sJ3lVRb90 iferrorはエラーの場合の値の置き換えでは?
697デフォルトの名無しさん (ワッチョイ 8f68-fceI)
2021/05/07(金) 07:20:54.57ID:tuSKe1qQ0 booleanで取りたい場合はIFとISERROR組み合わせた方が早い
698デフォルトの名無しさん (ワッチョイ cf05-M0W8)
2021/05/07(金) 07:26:43.31ID:DloXWpsH0 Excelのセルって、Accessで言うところのコントロールの
OldValue プロパティってないの?
Application.Undo以外で更新前の値に戻すときに使いたいんだけど
OldValue プロパティってないの?
Application.Undo以外で更新前の値に戻すときに使いたいんだけど
699デフォルトの名無しさん (ラクッペペ MMe6-YEtS)
2021/05/07(金) 08:26:31.62ID:EfOHcgmKM 見りゃわかることをいちいち聞くな
700デフォルトの名無しさん (ワッチョイ 2301-gUNg)
2021/05/07(金) 09:36:16.79ID:dif1qALr0 教えてください
データベースから取得した大量のデータを、他のシートに簡潔集計したいです。
生データシートには
文字列としてyy(2021)mm(03)をはじめ、メーカ、注文番号、数量、ナンバー、大分類、中分類、小分類など68列に渡ってあります。
理想としては別シートに月別に
メーカ、大分類、中分類、小分類(ピポット的配置のイメージ)で購入金額、数量を降順で出したいです。
メーカや分類名は多く、都度新しいのが出たりするので、メンテナンスなくして自動で出せるようにしたいです。
どうすればいいでしょうか。
データベースから取得した大量のデータを、他のシートに簡潔集計したいです。
生データシートには
文字列としてyy(2021)mm(03)をはじめ、メーカ、注文番号、数量、ナンバー、大分類、中分類、小分類など68列に渡ってあります。
理想としては別シートに月別に
メーカ、大分類、中分類、小分類(ピポット的配置のイメージ)で購入金額、数量を降順で出したいです。
メーカや分類名は多く、都度新しいのが出たりするので、メンテナンスなくして自動で出せるようにしたいです。
どうすればいいでしょうか。
701デフォルトの名無しさん (ワントンキン MMda-1ORs)
2021/05/07(金) 09:51:31.13ID:/bDSijiLM >>700
DBに入ってるんだったらSQLで最初からgroup byしたらいいだけ
DBに入ってるんだったらSQLで最初からgroup byしたらいいだけ
702デフォルトの名無しさん (ワッチョイ 2301-gUNg)
2021/05/07(金) 10:21:13.76ID:dif1qALr0703デフォルトの名無しさん (ワッチョイ 6a4f-sv8/)
2021/05/07(金) 10:44:31.42ID:uFptLScD0704デフォルトの名無しさん (ワッチョイ 2301-gUNg)
2021/05/07(金) 10:49:59.41ID:dif1qALr0705デフォルトの名無しさん (ワントンキン MMda-wmZf)
2021/05/07(金) 11:55:04.67ID:Uq/dH8v/M またいつものあいつか
706デフォルトの名無しさん (アウアウウー Sa1f-nFSz)
2021/05/07(金) 12:02:29.78ID:W+W51fKCa ここの諸先輩方にとってSQLってどういう位置付け? 常識レベル?
707デフォルトの名無しさん (ワッチョイ aebd-6gku)
2021/05/07(金) 12:10:39.55ID:Gobk7VPl0 手足と同じレベル
708デフォルトの名無しさん (ワントンキン MMda-1ORs)
2021/05/07(金) 12:13:21.02ID:/bDSijiLM709デフォルトの名無しさん (ワッチョイ 7eda-jjtP)
2021/05/07(金) 15:40:07.47ID:1tkbLq7p0 DeBu
710デフォルトの名無しさん (ワッチョイ 6a4f-sv8/)
2021/05/07(金) 19:08:51.24ID:uFptLScD0 >>704
EXCELでどういうObject使ってシートにSQLを投げるかはVBA シート Sql 辺りでググればいくらでも出てくるけどとりあえず一例としてここかな
http://www7b.biglobe.ne.jp/~whitetiger/ex/ex2002088.html
SQLがどういうものかは流石に SQL 入門 辺りでググってくれ
今は使ってないとしても本来VBAと同等かそれ以上の優先順位で覚えるべきものだから絶対覚えておいた方がいい。
EXCELでどういうObject使ってシートにSQLを投げるかはVBA シート Sql 辺りでググればいくらでも出てくるけどとりあえず一例としてここかな
http://www7b.biglobe.ne.jp/~whitetiger/ex/ex2002088.html
SQLがどういうものかは流石に SQL 入門 辺りでググってくれ
今は使ってないとしても本来VBAと同等かそれ以上の優先順位で覚えるべきものだから絶対覚えておいた方がいい。
711デフォルトの名無しさん (ワッチョイ 2ae6-YEtS)
2021/05/07(金) 20:08:21.87ID:xGNvq5Jp0 なぜインプロセスだかアウトプロレスだかの話を入れたのかがわからないな
712デフォルトの名無しさん (ワッチョイ 732c-M0W8)
2021/05/07(金) 21:41:30.83ID:Z7WMK8Ny0 Ruby on Rails は、MVC(model/view/controller)モデルだから、
最初から、3大データベース(SQLite/MySQL/PostgreSQL)を使う
入門レベル
最初から、3大データベース(SQLite/MySQL/PostgreSQL)を使う
入門レベル
713デフォルトの名無しさん (ワッチョイ be8e-gIfd)
2021/05/07(金) 22:30:42.79ID:hSzgOaHp0 >>712
MVCだから?馬鹿は黙ってろよ
MVCだから?馬鹿は黙ってろよ
714デフォルトの名無しさん (スッップ Sd8a-6gku)
2021/05/08(土) 00:33:08.33ID:H8oTRyi2d >>712
ちょっと何言ってるのかわからない
ちょっと何言ってるのかわからない
715デフォルトの名無しさん (ワントンキン MMda-wmZf)
2021/05/08(土) 00:50:58.02ID:9rj5+JrYM オワコンRubyにしがみつくのはこういう馬鹿ばっか
716デフォルトの名無しさん (ワッチョイ 8f68-fceI)
2021/05/08(土) 00:57:21.53ID:PaQQNn710 言語の終わりを実体験するとかなかなか稀有な例だと思う
717デフォルトの名無しさん (ワッチョイ 2301-UHqe)
2021/05/08(土) 00:59:37.62ID:xzBPi/0q0 VBA使っておいて他の言語をオワコン呼ばわりする権利はないと思うが
Ruby荒らしは前からいるキチだからNGしよう
Ruby荒らしは前からいるキチだからNGしよう
718デフォルトの名無しさん (ワッチョイ be8e-wmZf)
2021/05/08(土) 01:17:43.20ID:xwL6HEYY0719デフォルトの名無しさん (ワッチョイ 8f68-fceI)
2021/05/08(土) 01:46:00.09ID:PaQQNn710 >>718
どれもこう、誰も使わなくなってから「あ、そういやなくなってたんだ〜。D言語(だぶりゅー)なんてあったな〜」程度だけど、
rubyに関してはこの狂信者だか超アンチが一強で荒らし回っていて強制終了させている
終わり目の言語に止めをさすとか、こんなん後にも先にもないだろうw
どれもこう、誰も使わなくなってから「あ、そういやなくなってたんだ〜。D言語(だぶりゅー)なんてあったな〜」程度だけど、
rubyに関してはこの狂信者だか超アンチが一強で荒らし回っていて強制終了させている
終わり目の言語に止めをさすとか、こんなん後にも先にもないだろうw
720デフォルトの名無しさん (ワッチョイ be8e-wmZf)
2021/05/08(土) 05:21:49.11ID:xwL6HEYY0 >>719
そういう意味なら納得
そういう意味なら納得
721デフォルトの名無しさん (アウウィフ FF1f-gUNg)
2021/05/08(土) 08:40:58.17ID:Wz5DhM+2F >>710
ありがとうございます。
ふとした疑問なんですが、基本データベースからの
処理が多い場合は、vbaよりもsql勉強した方がいいのでしょうか。
今vbaを一生懸命勉強している最中ですが、効率の悪いのかなって思ってしまって
ありがとうございます。
ふとした疑問なんですが、基本データベースからの
処理が多い場合は、vbaよりもsql勉強した方がいいのでしょうか。
今vbaを一生懸命勉強している最中ですが、効率の悪いのかなって思ってしまって
722デフォルトの名無しさん (ワッチョイ 2ae6-YEtS)
2021/05/08(土) 08:47:24.17ID:YWSmrfQq0 Excel Access使うならVBAは必須
データベース使うならSQLは必須
当たり前のことですね
データベース使うならSQLは必須
当たり前のことですね
723デフォルトの名無しさん (ワントンキン MMda-1ORs)
2021/05/08(土) 09:07:14.40ID:L4NnuIXtM 何するにしてもVBAは別に必須ではない
データ処理やプログラミングをするほぼ全ての人にとってSQLは必須
データ処理やプログラミングをするほぼ全ての人にとってSQLは必須
724デフォルトの名無しさん (アウウィフ FF1f-gUNg)
2021/05/08(土) 09:40:04.43ID:Wz5DhM+2F 初歩的な質問ばかりですみませんでした(-_-;)
私自身パソコンが苦手なので、せめてvbaを身に着けようと思いましたが・・・
vba sql どちらも難しそうですネ
私自身パソコンが苦手なので、せめてvbaを身に着けようと思いましたが・・・
vba sql どちらも難しそうですネ
725デフォルトの名無しさん (ワッチョイ 6a4f-sv8/)
2021/05/08(土) 09:58:17.60ID:Z/jAVLJW0 >>721
>ふとした疑問なんですが、基本データベースからの
>処理が多い場合は、vbaよりもsql勉強した方がいいのでしょうか。
それはそうなんだけど
あくまで俺の場合はだけど
SQLをまともに勉強した記憶がない。
まぁ必要にかられたとき
必要な分だけ調べて覚えれば
基本部分は十分追いつけるものって
ことなんだろうな
>ふとした疑問なんですが、基本データベースからの
>処理が多い場合は、vbaよりもsql勉強した方がいいのでしょうか。
それはそうなんだけど
あくまで俺の場合はだけど
SQLをまともに勉強した記憶がない。
まぁ必要にかられたとき
必要な分だけ調べて覚えれば
基本部分は十分追いつけるものって
ことなんだろうな
726デフォルトの名無しさん (アウウィフ FF1f-gUNg)
2021/05/08(土) 10:18:13.28ID:Wz5DhM+2F vbaってどれくらいできたら、まあまあ使える人になりますか"(-""-)"
私は下のやつでもう混乱しています・・・これは基本なんですかね?
Sub ()
Dim i As Long
Dim ixR As Long
Dim ixC As Long
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Set ws1 = Worksheets("練習15")
Set ws2 = Worksheets("練習15_回答")
ws2.Range("A1").CurrentRegion.Offset(1, 1).ClearContents
With ws1
For i = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
ixC = 2
Do Until ws2.Cells(1, ixC) = .Cells(i, 1)
ixC = ixC + 1
Loop
ixR = 2
Do Until ws2.Cells(ixR, 1) = .Cells(i, 2)
ixR = ixR + 1
Loop
ws2.Cells(ixR, ixC) = ws2.Cells(ixR, ixC) + .Cells(i, 3)
Next
End With
End Sub
私は下のやつでもう混乱しています・・・これは基本なんですかね?
Sub ()
Dim i As Long
Dim ixR As Long
Dim ixC As Long
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Set ws1 = Worksheets("練習15")
Set ws2 = Worksheets("練習15_回答")
ws2.Range("A1").CurrentRegion.Offset(1, 1).ClearContents
With ws1
For i = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
ixC = 2
Do Until ws2.Cells(1, ixC) = .Cells(i, 1)
ixC = ixC + 1
Loop
ixR = 2
Do Until ws2.Cells(ixR, 1) = .Cells(i, 2)
ixR = ixR + 1
Loop
ws2.Cells(ixR, ixC) = ws2.Cells(ixR, ixC) + .Cells(i, 3)
Next
End With
End Sub
727デフォルトの名無しさん (ワッチョイ 8f68-fceI)
2021/05/08(土) 10:19:00.10ID:PaQQNn710 >>724
事務作業で死ぬほど役に立つのはvba。事務だけじゃなく営業でもちょっとした所で使えるなら、事務作業はほぼゼロになるだろう
sqlは使うべき時が来れば、その時に勉強すれば良い。その時に使うのはselectとjoinのはずだ
事務作業で死ぬほど役に立つのはvba。事務だけじゃなく営業でもちょっとした所で使えるなら、事務作業はほぼゼロになるだろう
sqlは使うべき時が来れば、その時に勉強すれば良い。その時に使うのはselectとjoinのはずだ
728デフォルトの名無しさん (アウウィフ FF1f-gUNg)
2021/05/08(土) 10:23:23.79ID:Wz5DhM+2F >>727
なりほど( *´艸`)
私は事務ですけど、正直vbaもsqlも使わなくても力技でどうにかなってきました。
関数とピポットで・・・
でも時短でvbaしようと思ってやってるんですが、どっちがいいか正直よくわかってません。
勉強しないと
なりほど( *´艸`)
私は事務ですけど、正直vbaもsqlも使わなくても力技でどうにかなってきました。
関数とピポットで・・・
でも時短でvbaしようと思ってやってるんですが、どっちがいいか正直よくわかってません。
勉強しないと
729デフォルトの名無しさん (ワッチョイ 8f68-fceI)
2021/05/08(土) 10:23:26.16ID:PaQQNn710 >>726
読みづらいし色々詰め込みすぎ。個人的にも使わないものが多い
・宣言(dim〜)
・with
・do until
はそうそう使わない
>For i = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
も
>最終行=Cells(.Rows.Count, 1).End(xlUp).Row
>For i = 2 To .最終行
と分けたほうが読みやすい
for、if、setが使えれば大体良いと思う
読みづらいし色々詰め込みすぎ。個人的にも使わないものが多い
・宣言(dim〜)
・with
・do until
はそうそう使わない
>For i = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
も
>最終行=Cells(.Rows.Count, 1).End(xlUp).Row
>For i = 2 To .最終行
と分けたほうが読みやすい
for、if、setが使えれば大体良いと思う
730デフォルトの名無しさん (ワッチョイ 8f68-fceI)
2021/05/08(土) 10:25:26.96ID:PaQQNn710 >>728
毎回同じピボットを作っているなら、ピボットをvbaでボタン一つで作ってみるとか
普段やってることを自動化するとすぐに覚えられるよ
※ただ、ピボットマクロはかなり大変なのマクロの記録を全力で使ったほうが良い
毎回同じピボットを作っているなら、ピボットをvbaでボタン一つで作ってみるとか
普段やってることを自動化するとすぐに覚えられるよ
※ただ、ピボットマクロはかなり大変なのマクロの記録を全力で使ったほうが良い
731デフォルトの名無しさん (テテンテンテン MMe6-1ORs)
2021/05/08(土) 10:25:49.52ID:7sae8zS6M 質問者は現に今使うべき時に来ているのに何を言っているのか
実際SQLで一瞬でできることを知らないままVBAで>>726みたいな暗号を延々血反吐吐きながら垂れ流してる可哀想なVBAerは多いし、質問者もここでSQLを使えと言われていなければそうなっていただろう
SQLはVBAよりずっと簡単だから、あまりVBAを使い込む前にSQLは一通りやった方がいい
実際SQLで一瞬でできることを知らないままVBAで>>726みたいな暗号を延々血反吐吐きながら垂れ流してる可哀想なVBAerは多いし、質問者もここでSQLを使えと言われていなければそうなっていただろう
SQLはVBAよりずっと簡単だから、あまりVBAを使い込む前にSQLは一通りやった方がいい
732デフォルトの名無しさん (アウウィフ FF1f-gUNg)
2021/05/08(土) 10:26:05.17ID:Wz5DhM+2F733デフォルトの名無しさん (アウウィフ FF1f-gUNg)
2021/05/08(土) 10:29:56.46ID:Wz5DhM+2F734デフォルトの名無しさん (ワッチョイ 8f68-fceI)
2021/05/08(土) 10:30:50.49ID:PaQQNn710735デフォルトの名無しさん (ワッチョイ 7eda-jjtP)
2021/05/08(土) 11:21:40.14ID:SHLAkmOY0 前から気になっていたんだけどセルを1つ選んで右クリックして挿入や削除するときのメニューで
セルの削除なのに「ファイルの削除」って表示されるの俺だけ?
セルの削除なのに「ファイルの削除」って表示されるの俺だけ?
736デフォルトの名無しさん (ワッチョイ 8f68-fceI)
2021/05/08(土) 11:36:39.10ID:PaQQNn710 >>735
yes
yes
737デフォルトの名無しさん (ワッチョイ 6a01-wt3T)
2021/05/08(土) 11:50:01.75ID:zkiV4DEW0 >>732
> 私が使ってるサイトdimは全部に使ってました・・・
それで正しい
今時コードの先頭にOption Explicitが入ってないサイトは無視していいレベル
ID:PaQQNn710はレベルの低いドヤ顔爺だから話半分に受け流しておけばいい
> 私が使ってるサイトdimは全部に使ってました・・・
それで正しい
今時コードの先頭にOption Explicitが入ってないサイトは無視していいレベル
ID:PaQQNn710はレベルの低いドヤ顔爺だから話半分に受け流しておけばいい
738デフォルトの名無しさん (ブーイモ MMd6-gxHo)
2021/05/08(土) 12:39:16.21ID:wIqzNMvOM ここはドヤ顔爺の巣窟ですよ。
子供は他所で遊んだ方が良いですよ。
子供は他所で遊んだ方が良いですよ。
739デフォルトの名無しさん (ワッチョイ 2301-gUNg)
2021/05/08(土) 13:17:27.11ID:SUb7u/UA0 私の勉強方法が合っているのか分からなくなってきました( *´艸`)
740デフォルトの名無しさん (ワッチョイ 2301-gUNg)
2021/05/08(土) 13:18:27.12ID:SUb7u/UA0 ID変わっちゃったけどdimのモノです・・・
741デフォルトの名無しさん (スッップ Sd8a-6gku)
2021/05/08(土) 13:36:12.98ID:75Tkj6otd >>740
dimもwithもdo untilも安心して使っていいよ
ただ必ずしも関数の最初にdimをまとめておく必要はないのでiとかは必要になったときに宣言するのでも大丈夫
あとws1みたいな連番の変数よりは目的を具体的に表した変数名の方が良い
dimもwithもdo untilも安心して使っていいよ
ただ必ずしも関数の最初にdimをまとめておく必要はないのでiとかは必要になったときに宣言するのでも大丈夫
あとws1みたいな連番の変数よりは目的を具体的に表した変数名の方が良い
742デフォルトの名無しさん (ワッチョイ 2301-gUNg)
2021/05/08(土) 13:49:53.06ID:SUb7u/UA0743デフォルトの名無しさん (スッップ Sd8a-6gku)
2021/05/08(土) 14:01:23.31ID:75Tkj6otd >>742
綺麗か綺麗でないかって尺度だとなんともだけど丁寧に書こうとしてるのは伝わるので応援したい
パフォーマンスとか考えるともう少し良くできそうなのと、個人的には関数を小さく分けた方が見通しが良くなるかもしれない(ちょっと曖昧な表現になってすまない)
綺麗か綺麗でないかって尺度だとなんともだけど丁寧に書こうとしてるのは伝わるので応援したい
パフォーマンスとか考えるともう少し良くできそうなのと、個人的には関数を小さく分けた方が見通しが良くなるかもしれない(ちょっと曖昧な表現になってすまない)
744デフォルトの名無しさん (ワッチョイ 8f68-fceI)
2021/05/08(土) 14:50:38.57ID:PaQQNn710 俺ならこうなるかなぁ
ただ書いてて思ったけど、index(match(),match())で済むような?
Sub () foo
Set 元シート = Worksheets("練習15")
Set 転記先シート = Worksheets("練習15_回答")
転記先シート.Range("A1:B2").ClearContents
For i = 2 To 元シート.Cells(元シート.Rows.Count, 1).End(xlUp).Row
転記列 = 2
Do Until 転記先シート.Cells(1, 転記列) = 元シート.Cells(i, 1)
転記列 = 転記列 + 1
Loop
転記行 = 2
Do Until 転記先シート.Cells(転記行, 1) = 元シート.Cells(i, 2)
転記行 = 転記行 + 1
Loop
転記先シート.Cells(転記行, 転記列) = 転記先シート.Cells(転記行, 転記列) + 元シート.Cells(i, 3)
Next
End Sub
ただ書いてて思ったけど、index(match(),match())で済むような?
Sub () foo
Set 元シート = Worksheets("練習15")
Set 転記先シート = Worksheets("練習15_回答")
転記先シート.Range("A1:B2").ClearContents
For i = 2 To 元シート.Cells(元シート.Rows.Count, 1).End(xlUp).Row
転記列 = 2
Do Until 転記先シート.Cells(1, 転記列) = 元シート.Cells(i, 1)
転記列 = 転記列 + 1
Loop
転記行 = 2
Do Until 転記先シート.Cells(転記行, 1) = 元シート.Cells(i, 2)
転記行 = 転記行 + 1
Loop
転記先シート.Cells(転記行, 転記列) = 転記先シート.Cells(転記行, 転記列) + 元シート.Cells(i, 3)
Next
End Sub
745デフォルトの名無しさん (ワッチョイ 8f68-fceI)
2021/05/08(土) 14:53:21.72ID:PaQQNn710 間違えた、こうか
Sub () foo
Set 元シート = Worksheets("練習15")
Set 転記先シート = Worksheets("練習15_回答")
転記先シート.Range("A1:B2").ClearContents
For i = 2 To 元シート.Cells(元シート.Rows.Count, 1).End(xlUp).Row
列 = 2
Do Until 転記先シート.Cells(1, 列) = 元シート.Cells(i, 1)
列 = 列 + 1
Loop
行 = 2
Do Until 転記先シート.Cells(行, 1) = 元シート.Cells(i, 2)
行 = 行 + 1
Loop
転記先シート.Cells(行, 列) = 転記先シート.Cells(行, 列) + 元シート.Cells(i, 3)
Next
End Sub
>742
慣れてない感じは凄い伝わる
コードは後で見直してすぐに内容が分かるように書いたほうが良い。コメントを入れまくるんだ
Sub () foo
Set 元シート = Worksheets("練習15")
Set 転記先シート = Worksheets("練習15_回答")
転記先シート.Range("A1:B2").ClearContents
For i = 2 To 元シート.Cells(元シート.Rows.Count, 1).End(xlUp).Row
列 = 2
Do Until 転記先シート.Cells(1, 列) = 元シート.Cells(i, 1)
列 = 列 + 1
Loop
行 = 2
Do Until 転記先シート.Cells(行, 1) = 元シート.Cells(i, 2)
行 = 行 + 1
Loop
転記先シート.Cells(行, 列) = 転記先シート.Cells(行, 列) + 元シート.Cells(i, 3)
Next
End Sub
>742
慣れてない感じは凄い伝わる
コードは後で見直してすぐに内容が分かるように書いたほうが良い。コメントを入れまくるんだ
746デフォルトの名無しさん (ワッチョイ 2301-gUNg)
2021/05/08(土) 15:03:51.26ID:SUb7u/UA0 みなさんご丁寧にありがとうございます_(._.)_
vbaを使う人はみなさん頭がいいですね・・・自信ないなーww
sql含めてやってみます。。
vbaを使う人はみなさん頭がいいですね・・・自信ないなーww
sql含めてやってみます。。
747デフォルトの名無しさん (ワッチョイ 6a01-wt3T)
2021/05/08(土) 15:07:11.21ID:zkiV4DEW0748デフォルトの名無しさん (スッップ Sd8a-6gku)
2021/05/08(土) 15:13:57.96ID:75Tkj6otd 入れまくれってのは程度にもよるけど読み返すときの手がかりとしてのコメントは残しておいた方がいい
749デフォルトの名無しさん (ワッチョイ be8e-gIfd)
2021/05/08(土) 15:16:34.30ID:xwL6HEYY0 ID変える、しつこく何度も質問する、わざとらしいへりくだり
いつものあいつだろうが
いつものあいつだろうが
750デフォルトの名無しさん (ワッチョイ 2301-gUNg)
2021/05/08(土) 15:26:39.50ID:SUb7u/UA0751デフォルトの名無しさん (ワッチョイ beb0-V+d8)
2021/05/08(土) 17:03:41.13ID:6tENHryO0 >>729
VB6の開発プロジェクトやってたけど
どのソースコードでもdimもwithもdo untilも当然のように使ってたぞ
お前が使わないってだけじゃないの?
あとOption Explicitつけないのはバグの原因になるから推奨できない。
VB6の開発プロジェクトやってたけど
どのソースコードでもdimもwithもdo untilも当然のように使ってたぞ
お前が使わないってだけじゃないの?
あとOption Explicitつけないのはバグの原因になるから推奨できない。
752デフォルトの名無しさん (スッップ Sd8a-6gku)
2021/05/08(土) 18:11:49.59ID:jYvDj1vcd VBScript(WSH)はDimないし使わないのも自然だけどVBAはありがたくOption ExplicitもDimも使うな
753デフォルトの名無しさん (ワッチョイ 9f5f-Fl7F)
2021/05/08(土) 18:14:06.32ID:IhtMBIEH0 俺は変数宣言するけどoption付けない事も多いな
自分だけのちょんプロとか
自分だけのちょんプロとか
754デフォルトの名無しさん (スッップ Sd8a-HO9V)
2021/05/08(土) 19:23:35.24ID:vdqKmiMMd >>750
この文章でモロバレ
この文章でモロバレ
755デフォルトの名無しさん (ワッチョイ 0b2f-C7Xb)
2021/05/08(土) 20:01:04.28ID:+76Iryda0 With使わないのは、C#に採用されなかったように最近の流れだからまあいい
Doも、ループはWhileに統一しろってルールならまあいい
Dim使わんってどういうことだ?
まさか変数の宣言しないってことじゃないよな
Option Explicitなんて自分で書くことまずないが、真っ先に変更するオプションじゃないのか
Doも、ループはWhileに統一しろってルールならまあいい
Dim使わんってどういうことだ?
まさか変数の宣言しないってことじゃないよな
Option Explicitなんて自分で書くことまずないが、真っ先に変更するオプションじゃないのか
756デフォルトの名無しさん (ワッチョイ ca3d-ZHNQ)
2021/05/08(土) 20:07:27.25ID:cJeFkg/00 変数の宣言しないと型違いのエラーとか検知しづらくなるし、
コードの中で比較が出てきた時に自作関数の結果か変数の値かどっちと比較してるのかわかりづらくなったり…
とにかく色々エラー回避とかメンテナンス性とか考えて変数宣言しないのはナシよりのナシかと
コードの中で比較が出てきた時に自作関数の結果か変数の値かどっちと比較してるのかわかりづらくなったり…
とにかく色々エラー回避とかメンテナンス性とか考えて変数宣言しないのはナシよりのナシかと
757デフォルトの名無しさん (JP 0H97-jjtP)
2021/05/08(土) 20:35:45.94ID:QG+os5rrH 基礎ができてなくて、型の使い分けがわからなくて全部Variantで書いてる人
758デフォルトの名無しさん (ワッチョイ 8f68-fceI)
2021/05/08(土) 21:04:16.49ID:PaQQNn710 >>755
しない
以下でエラーが起きないって時点で俺はアホらしくなって宣言をやめた
Sub foo()
Dim a As String
Dim b As Long
a = "1"
b = 2
Debug.Print a + b '3が出るぞ良かったな
End Sub
しない
以下でエラーが起きないって時点で俺はアホらしくなって宣言をやめた
Sub foo()
Dim a As String
Dim b As Long
a = "1"
b = 2
Debug.Print a + b '3が出るぞ良かったな
End Sub
759デフォルトの名無しさん (ワッチョイ 8f68-fceI)
2021/05/08(土) 21:06:38.67ID:PaQQNn710 宣言しないと何ができなくなるのか、何を間違えるのかが分からん
760デフォルトの名無しさん (ワッチョイ beb0-V+d8)
2021/05/08(土) 21:30:00.76ID:6tENHryO0 >>758
それは暗黙の型変換が行われるから。
変数の宣言をしたほうがいいのは以下のような場合にエラーにできるから。
public sub foo()
hensu = 1
Debug.Print hansu + 1
end sub
2が出力されることを期待しているが、この場合1が出力される。(変数名の打ち間違い)
それは暗黙の型変換が行われるから。
変数の宣言をしたほうがいいのは以下のような場合にエラーにできるから。
public sub foo()
hensu = 1
Debug.Print hansu + 1
end sub
2が出力されることを期待しているが、この場合1が出力される。(変数名の打ち間違い)
761デフォルトの名無しさん (ワッチョイ beb0-V+d8)
2021/05/08(土) 21:36:40.65ID:6tENHryO0 VB6やVBAは型が弱いので、変数名の先頭にintやlng、str等をつけてデータ型がわかるようにするのが一般的だと思ってる。
この場合だと
Dim intHensu As Integer
の宣言を入れておくべき。
この場合だと
Dim intHensu As Integer
の宣言を入れておくべき。
762デフォルトの名無しさん (ワッチョイ 8f68-fceI)
2021/05/08(土) 21:37:56.47ID:PaQQNn710763デフォルトの名無しさん (ワッチョイ 8f68-fceI)
2021/05/08(土) 21:39:48.07ID:PaQQNn710 >>761
変数名見れば何入ってるか分からないか?
変数名見れば何入ってるか分からないか?
764デフォルトの名無しさん (ワッチョイ beb0-V+d8)
2021/05/08(土) 21:43:37.13ID:6tENHryO0 >>763
ごめん一般的といったのは、自分がそう思ってただけなので、実際はそうじゃないかも。
ごめん一般的といったのは、自分がそう思ってただけなので、実際はそうじゃないかも。
765デフォルトの名無しさん (スッップ Sd8a-6gku)
2021/05/08(土) 21:45:17.15ID:jYvDj1vcd 何でもかんでもVariant型だと余計にメモリ食ったり速度面で劣るんじゃなかったっけか
766デフォルトの名無しさん (JP 0H97-jjtP)
2021/05/08(土) 21:52:57.44ID:QG+os5rrH 簡単なマクロならメモリも速度もほとんど気にしなくていい
そういうのが気になってきてから速くする方法を勉強してもいいと思う
そういうのが気になってきてから速くする方法を勉強してもいいと思う
767デフォルトの名無しさん (ワッチョイ ca3d-wPc9)
2021/05/08(土) 21:55:44.85ID:cJeFkg/00 文字列 String
整数 Long
小数以下も必要 Single
日付 Date
Setが必要なもの Object
なんでも Variant
初心者ならこれくらいの使い分け出来てたら十分だから宣言はして
整数 Long
小数以下も必要 Single
日付 Date
Setが必要なもの Object
なんでも Variant
初心者ならこれくらいの使い分け出来てたら十分だから宣言はして
768デフォルトの名無しさん (アウアウウー Sa1f-ymZB)
2021/05/08(土) 21:57:26.01ID:L/dDaofga 大量のデータをがばっと取るときはsql
とってきたデータをチマチマ加工したいときはVBA
二刀流がべだー
とってきたデータをチマチマ加工したいときはVBA
二刀流がべだー
769デフォルトの名無しさん (アウアウウー Sa1f-ymZB)
2021/05/08(土) 22:02:54.21ID:L/dDaofga 変数宣言でいちばん重要なのは
パブリック変数なのか
プライベート変数なのかだよ
型はそんなに気にしなくてよいから
3文字以下ならプライベート、パブリックなら5文字以上にする
パブリック変数なのか
プライベート変数なのかだよ
型はそんなに気にしなくてよいから
3文字以下ならプライベート、パブリックなら5文字以上にする
770デフォルトの名無しさん (ワッチョイ 6a4f-sv8/)
2021/05/08(土) 22:18:22.12ID:Z/jAVLJW0 >>769
いや、そもそも
外部とのやり取りはプロパティで行わないと
ブレイクポイント等仕掛けて
どこから呼ばれたか分かり辛くなることを考えると
変数をPublicで宣言する機会はまず無くなるだろう。
もちろんこのプロパティと言うのは概念的なものを含めて
Javaの様に関数と同じ様に設定することも含めるけど。
そうすればパブリック、プライベートの
判断のために変数名の考慮を行う必要も無くなる。
良かったな。
いや、そもそも
外部とのやり取りはプロパティで行わないと
ブレイクポイント等仕掛けて
どこから呼ばれたか分かり辛くなることを考えると
変数をPublicで宣言する機会はまず無くなるだろう。
もちろんこのプロパティと言うのは概念的なものを含めて
Javaの様に関数と同じ様に設定することも含めるけど。
そうすればパブリック、プライベートの
判断のために変数名の考慮を行う必要も無くなる。
良かったな。
771デフォルトの名無しさん (ワッチョイ 8f68-fceI)
2021/05/08(土) 22:31:52.03ID:PaQQNn710772デフォルトの名無しさん (ワッチョイ 0b2f-C7Xb)
2021/05/08(土) 23:54:10.02ID:+76Iryda0773デフォルトの名無しさん (ワッチョイ 6bac-91/Y)
2021/05/09(日) 00:48:39.55ID:vQpWnC+C0774デフォルトの名無しさん (ワッチョイ 7eda-K+t/)
2021/05/09(日) 01:41:49.82ID:SiihAWPs0 variantにすると型間違いでエラーがでないので
やはり推奨できない
やはり推奨できない
775デフォルトの名無しさん (ワッチョイ 2e02-X9JK)
2021/05/09(日) 02:15:37.67ID:vzYu7ze/0 知恵を貸してください
ある可変長2次元配列のデータについて
各列のデータから1つずつ抽出した文字列の組み合わせを出力したいと考えています
例えばArray(2,2)のデータが以下だとします
Array(0,0)="いちご"
Array(0,1)="みかん"
Array(0,2)=""
Array(1,0)="あまい"
Array(1,1)="すっぱい"
Array(1,2)="にがい"
Array(2,0)="100円"
Array(2,1)="200円"
Array(2,2)=""
この場合
「いちご,あまい,100円」「いちご,あまい,200円」「みかん,すっぱい,100円」
などの
空白を除く2*3*2=12通りの組み合わせ全てを抽出したいのです
(抽出先はシートでも配列でも何でも良いです)
そして実際にはこの配列をArray(x,y)とすると
xとyは1以上の自然数で不定です
配列の行数が固定長であれば各行において行の数だけFor文でループの中にループを入れれば良いのでしょうが
配列の行数が1以上の不定数の場合にどうすれば良いか思い付きません
vbaというよりアルゴリズムの問題かも知れませんが
良い方法はあるのでしょうか
ある可変長2次元配列のデータについて
各列のデータから1つずつ抽出した文字列の組み合わせを出力したいと考えています
例えばArray(2,2)のデータが以下だとします
Array(0,0)="いちご"
Array(0,1)="みかん"
Array(0,2)=""
Array(1,0)="あまい"
Array(1,1)="すっぱい"
Array(1,2)="にがい"
Array(2,0)="100円"
Array(2,1)="200円"
Array(2,2)=""
この場合
「いちご,あまい,100円」「いちご,あまい,200円」「みかん,すっぱい,100円」
などの
空白を除く2*3*2=12通りの組み合わせ全てを抽出したいのです
(抽出先はシートでも配列でも何でも良いです)
そして実際にはこの配列をArray(x,y)とすると
xとyは1以上の自然数で不定です
配列の行数が固定長であれば各行において行の数だけFor文でループの中にループを入れれば良いのでしょうが
配列の行数が1以上の不定数の場合にどうすれば良いか思い付きません
vbaというよりアルゴリズムの問題かも知れませんが
良い方法はあるのでしょうか
776デフォルトの名無しさん (ワッチョイ be8e-gIfd)
2021/05/09(日) 02:26:22.29ID:qbmXU1K50 はい、いつものあいつ
777デフォルトの名無しさん (ワッチョイ eada-K+t/)
2021/05/09(日) 04:53:38.03ID:yBvaHslb0778デフォルトの名無しさん (ワッチョイ 9f5f-c52j)
2021/05/09(日) 06:11:50.07ID:Gu7b6Am40 相手しない相手しない
779デフォルトの名無しさん (アウアウウー Sa1f-ymZB)
2021/05/09(日) 08:20:21.39ID:nRlrfZeFa ワークシートをグローバル変数みたいなつかい方をする
うむ、よくある
うむ、よくある
780デフォルトの名無しさん (ワッチョイ beb0-V+d8)
2021/05/09(日) 09:19:54.62ID:TBZcO69u0 uboundで現在の配列の最大要素番号調べて、そこまでループとかじゃないの?
そもそも配列なんて自分はあんまり使わない。redim preserveって確かかなり遅かった気がする。
そもそも配列なんて自分はあんまり使わない。redim preserveって確かかなり遅かった気がする。
781デフォルトの名無しさん (ブーイモ MMd6-O8Br)
2021/05/09(日) 09:44:03.47ID:1mWvM4p1M ReDim Preserveは1番ケツの次元しか可変に出来ねぇのがとても残念
782デフォルトの名無しさん (ワッチョイ 8f68-fceI)
2021/05/09(日) 09:48:20.73ID:HdQWbOvH0 >>775
Sub foo()
Dim array1() As String
ReDim Preserve array1(3, 3)
array1(0, 0) = "いちご"
array1(0, 1) = "みかん"
array1(0, 2) = ""
array1(1, 0) = "あまい"
array1(1, 1) = "すっぱい"
array1(1, 2) = "にがい"
array1(2, 0) = "100円"
array1(2, 1) = "200円"
array1(2, 2) = ""
For Each dim1 In array1
If dim1 <> "" Then
Debug.Print dim1
End If
Next
End Sub
vbaの動的配列は本当にめんどくさいな
Sub foo()
Dim array1() As String
ReDim Preserve array1(3, 3)
array1(0, 0) = "いちご"
array1(0, 1) = "みかん"
array1(0, 2) = ""
array1(1, 0) = "あまい"
array1(1, 1) = "すっぱい"
array1(1, 2) = "にがい"
array1(2, 0) = "100円"
array1(2, 1) = "200円"
array1(2, 2) = ""
For Each dim1 In array1
If dim1 <> "" Then
Debug.Print dim1
End If
Next
End Sub
vbaの動的配列は本当にめんどくさいな
783デフォルトの名無しさん (JP 0H97-jjtP)
2021/05/09(日) 10:05:56.73ID:Nzaho5/SH 行数、列数はUBound関数で調べられる
2次元配列の場合は
UBound(array1, 1)
UBound(array1, 2)
で、それぞれの次元の大きさが取得できる
2番目のパラメータが対象となる次元
あと、多次元配列に一気に代入するにはarray関数を次元と同じ数だけ入れ子にする方法がある
array1 = Array( _
Array("いちご", "みかん", ""), _
Array("あまい", "すっぱい", "にがい"), _
Array("100円", "200円", ""))
2次元配列の場合は
UBound(array1, 1)
UBound(array1, 2)
で、それぞれの次元の大きさが取得できる
2番目のパラメータが対象となる次元
あと、多次元配列に一気に代入するにはarray関数を次元と同じ数だけ入れ子にする方法がある
array1 = Array( _
Array("いちご", "みかん", ""), _
Array("あまい", "すっぱい", "にがい"), _
Array("100円", "200円", ""))
784デフォルトの名無しさん (ワッチョイ 2e02-X9JK)
2021/05/09(日) 10:13:55.83ID:vzYu7ze/0 ありがとうございます
ReDim Preserveの配列再定義は知っているのですが
例えば>>782のようだと
「いちご」
「みかん」
「あまい」
……
「200円」
のような2+3+2の7個出力されるだけですよね
「いちご,あまい,100円」
「いちご,あまい,200円」
「いちご,すっぱい,100円」
……
「みかん,にがい,200円」
のような2*3*2の12個を出力したいのです
行数が固定なら例えばArray(2,x)のように列数が不定でも
For i=0 To UBound Array(0,x)
For j=0 To UBound Array(1,x)
For k=0 To UBound Array(2,x)
Debug.Print Array(0,i)& "," & Array(1,i)& "," & Array(2,i)
Next
Next
Next
のようにして空白部分の例外処理を適当に入れれば良いのは分かりますが
行数が不定なので分からないというお話です
ReDim Preserveの配列再定義は知っているのですが
例えば>>782のようだと
「いちご」
「みかん」
「あまい」
……
「200円」
のような2+3+2の7個出力されるだけですよね
「いちご,あまい,100円」
「いちご,あまい,200円」
「いちご,すっぱい,100円」
……
「みかん,にがい,200円」
のような2*3*2の12個を出力したいのです
行数が固定なら例えばArray(2,x)のように列数が不定でも
For i=0 To UBound Array(0,x)
For j=0 To UBound Array(1,x)
For k=0 To UBound Array(2,x)
Debug.Print Array(0,i)& "," & Array(1,i)& "," & Array(2,i)
Next
Next
Next
のようにして空白部分の例外処理を適当に入れれば良いのは分かりますが
行数が不定なので分からないというお話です
785デフォルトの名無しさん (JP 0H97-jjtP)
2021/05/09(日) 10:14:00.97ID:Nzaho5/SH >>775
2次元配列の要素数が不明の場合こういう書き方もできる
For i = 0 To UBound(array1)
For j = 0 To UBound(array1(i))
Debug.Print array1(i)(j)
Next j
Next i
2次元配列の要素数が不明の場合こういう書き方もできる
For i = 0 To UBound(array1)
For j = 0 To UBound(array1(i))
Debug.Print array1(i)(j)
Next j
Next i
786デフォルトの名無しさん (ワッチョイ 8f68-fceI)
2021/05/09(日) 10:14:31.62ID:HdQWbOvH0 >>782は全然違うわ、スマン
787デフォルトの名無しさん (JP 0H97-jjtP)
2021/05/09(日) 10:50:20.26ID:Nzaho5/SH788デフォルトの名無しさん (ワッチョイ beb0-V+d8)
2021/05/09(日) 11:38:04.63ID:TBZcO69u0789デフォルトの名無しさん (JP 0H97-jjtP)
2021/05/09(日) 11:47:23.05ID:Nzaho5/SH とりあえずもう一つ突っ込みたい
Preserveは不要だしパラメータも(3, 3)じゃない
ReDim array1(2, 2) が正解
>>788
ネストの深さが不定の時は再帰でやるのが一番自然だと思うよ
Preserveは不要だしパラメータも(3, 3)じゃない
ReDim array1(2, 2) が正解
>>788
ネストの深さが不定の時は再帰でやるのが一番自然だと思うよ
790デフォルトの名無しさん (ワッチョイ beb0-V+d8)
2021/05/09(日) 11:59:36.87ID:TBZcO69u0 ごめんちょっと動作検証してたら、Uboundのとこxとyが逆だった。
Ifの中に書いてるのが、Ubound(ary1)
でForの中に書いてるのが
Ubound(ary1, 2)
ですね。
Ifの中に書いてるのが、Ubound(ary1)
でForの中に書いてるのが
Ubound(ary1, 2)
ですね。
791デフォルトの名無しさん (ワッチョイ beb0-V+d8)
2021/05/09(日) 12:09:11.80ID:TBZcO69u0792デフォルトの名無しさん (JP 0H97-jjtP)
2021/05/09(日) 12:10:40.52ID:Nzaho5/SH やってることは同じだけど画像だと入力が面倒だろうし、俺もほとんど同時に作っちゃってたんで貼らして
Option Explicit
Sub foo()
Dim array1() As String
ReDim array1(2, 2)
array1(0, 0) = "いちご"
array1(0, 1) = "みかん"
array1(0, 2) = ""
array1(1, 0) = "あまい"
array1(1, 1) = "すっぱい"
array1(1, 2) = "にがい"
array1(2, 0) = "100円"
array1(2, 1) = "200円"
array1(2, 2) = ""
Call recloop(array1, 0, "")
End Sub
Sub recloop(array1, row1, str)
Dim col1
If row1 < UBound(array1, 2) Then
For col1 = 0 To UBound(array1, 2)
If array1(row1, col1) <> "" Then Call recloop(array1, row1 + 1, str & array1(row1, col1) & ",")
Next
Else
For col1 = 0 To UBound(array1, 2)
If array1(row1, col1) <> "" Then Debug.Print str & array1(row1, col1)
Next
End If
End Sub
Option Explicit
Sub foo()
Dim array1() As String
ReDim array1(2, 2)
array1(0, 0) = "いちご"
array1(0, 1) = "みかん"
array1(0, 2) = ""
array1(1, 0) = "あまい"
array1(1, 1) = "すっぱい"
array1(1, 2) = "にがい"
array1(2, 0) = "100円"
array1(2, 1) = "200円"
array1(2, 2) = ""
Call recloop(array1, 0, "")
End Sub
Sub recloop(array1, row1, str)
Dim col1
If row1 < UBound(array1, 2) Then
For col1 = 0 To UBound(array1, 2)
If array1(row1, col1) <> "" Then Call recloop(array1, row1 + 1, str & array1(row1, col1) & ",")
Next
Else
For col1 = 0 To UBound(array1, 2)
If array1(row1, col1) <> "" Then Debug.Print str & array1(row1, col1)
Next
End If
End Sub
793デフォルトの名無しさん (ワッチョイ 2e02-X9JK)
2021/05/09(日) 12:23:48.39ID:vzYu7ze/0 ありがとうございます
再帰関数の知識は持っていたのですが
自身で再帰関数を使用したことは無かったため盲点でした
このように使用するのですね
助かりました参考にさせて頂きます
再帰関数の知識は持っていたのですが
自身で再帰関数を使用したことは無かったため盲点でした
このように使用するのですね
助かりました参考にさせて頂きます
794デフォルトの名無しさん (ワッチョイ 6a01-wt3T)
2021/05/09(日) 13:41:59.08ID:WHUEfE6G0 >>779
グローバル変数と言うよりストレージみたいなもんだと思ってる
グローバル変数と言うよりストレージみたいなもんだと思ってる
795デフォルトの名無しさん (ブーイモ MMd6-O8Br)
2021/05/09(日) 21:06:29.88ID:o10D8BaNM ReDim使うのって要素数に変数使うときじゃなかった?
数が決まってるならDim array(0 to 2, 0 to 2) As Stringで良いんだよね?
数が決まってるならDim array(0 to 2, 0 to 2) As Stringで良いんだよね?
796デフォルトの名無しさん (ワッチョイ 2a05-M0W8)
2021/05/09(日) 21:07:35.90ID:OCR3m9+L0 >>737
あなたに禿同!
あなたに禿同!
797デフォルトの名無しさん (ワッチョイ 8f68-fceI)
2021/05/09(日) 21:47:13.65ID:HdQWbOvH0 >795
動的配列と静的配列の違いだよ
「変数」でもなければ「数が決まってる」でもなく、「後で変更するかどうか」が違う所
動的配列と静的配列の違いだよ
「変数」でもなければ「数が決まってる」でもなく、「後で変更するかどうか」が違う所
798デフォルトの名無しさん (スプッッ Sd22-jjtP)
2021/05/10(月) 01:12:41.56ID:8FNokcfwd 再帰を使わない方法でやってみた
「r行c列」の配列を「c桁のr進数」とみなしてる。とりあえず動いたけどバグあるかも
Sub Macro5()
Dim array1() As String
ReDim array1(2, 2)
array1(0, 0) = "いちご"
array1(0, 1) = "みかん"
array1(1, 0) = "あまい"
array1(1, 1) = "すっぱい"
array1(1, 2) = "にがい"
array1(2, 0) = "100円"
array1(2, 1) = "200円"
row0 = UBound(array1, 1)
col0 = UBound(array1, 2) + 1
For n = 0 To (row0 + 1) ^ col0 - 1
nn = n
s = ""
For row1 = row0 To 0 Step -1
col1 = nn Mod (row0 + 1)
nn = nn \ (row0 + 1)
If array1(row1, col1) = "" Then
s = ""
Exit For
Else
s = array1(row1, col1) & s
If row1 Then s = "," & s
End If
Next
If s <> "" Then Debug.Print s
Next
End Sub
「r行c列」の配列を「c桁のr進数」とみなしてる。とりあえず動いたけどバグあるかも
Sub Macro5()
Dim array1() As String
ReDim array1(2, 2)
array1(0, 0) = "いちご"
array1(0, 1) = "みかん"
array1(1, 0) = "あまい"
array1(1, 1) = "すっぱい"
array1(1, 2) = "にがい"
array1(2, 0) = "100円"
array1(2, 1) = "200円"
row0 = UBound(array1, 1)
col0 = UBound(array1, 2) + 1
For n = 0 To (row0 + 1) ^ col0 - 1
nn = n
s = ""
For row1 = row0 To 0 Step -1
col1 = nn Mod (row0 + 1)
nn = nn \ (row0 + 1)
If array1(row1, col1) = "" Then
s = ""
Exit For
Else
s = array1(row1, col1) & s
If row1 Then s = "," & s
End If
Next
If s <> "" Then Debug.Print s
Next
End Sub
799デフォルトの名無しさん (アウアウエー Sae2-Qnne)
2021/05/10(月) 20:50:28.57ID:6x/72ii/a そもそもの疑問で、なぜVBAは初心者向けとか言われるのでしょうか。
こんなに小難しいチマチマしたこも書かなきゃいけないのに。
全然わからん。
こんなに小難しいチマチマしたこも書かなきゃいけないのに。
全然わからん。
800デフォルトの名無しさん (ワッチョイ d35f-d7su)
2021/05/10(月) 20:50:49.81ID:GwFlyMni0 >>761
俺もハンガリアン使ってるわ
俺もハンガリアン使ってるわ
801デフォルトの名無しさん (ワッチョイ 8f68-fceI)
2021/05/10(月) 20:53:01.66ID:2ArSfNqX0 >>775
総当りってよく考えればパワークエリでクロス結合すれば一発だろって思ったら、パワークエリにクロス結合が無かった・・・
https://www.shegolab.jp/entry/excel-macro-cross-join
accessだとアホみたいなクエリで即完成
https://i.imgur.com/moHa3bx.png
総当りってよく考えればパワークエリでクロス結合すれば一発だろって思ったら、パワークエリにクロス結合が無かった・・・
https://www.shegolab.jp/entry/excel-macro-cross-join
accessだとアホみたいなクエリで即完成
https://i.imgur.com/moHa3bx.png
802デフォルトの名無しさん (ワンミングク MMda-rYak)
2021/05/10(月) 20:55:51.32ID:/NuMOBBIM >>799
昔はプログラミングはもっと敷居が高かったんだよ
その中では、Excelさえあれば使えてUIはExcelのワークシートをそのまま利用できるという手軽さは初心者には魅力的だった
その頃の名残だね
今ではPowerAppsとかGASとかSalesforceとかもっと簡単で強力な選択肢は色々あるし、
プログラミングの勉強ならPythonとかJavaScriptの方が初学者には敷居が低い
昔はプログラミングはもっと敷居が高かったんだよ
その中では、Excelさえあれば使えてUIはExcelのワークシートをそのまま利用できるという手軽さは初心者には魅力的だった
その頃の名残だね
今ではPowerAppsとかGASとかSalesforceとかもっと簡単で強力な選択肢は色々あるし、
プログラミングの勉強ならPythonとかJavaScriptの方が初学者には敷居が低い
803デフォルトの名無しさん (ワッチョイ 2ae6-YEtS)
2021/05/10(月) 20:57:55.19ID:vb1TGTCB0 ハンガリアンより#%&$の方が分かりやすいよな
804デフォルトの名無しさん (アウアウエー Sae2-Qnne)
2021/05/10(月) 21:06:13.53ID:6x/72ii/a805デフォルトの名無しさん (ワッチョイ 8f68-fceI)
2021/05/10(月) 21:09:38.66ID:2ArSfNqX0 vbaは本当に楽。forとif覚えるだけで仕事がはかどりまくり
Cはメモリの知識やらヘッダやら本当に覚える事が多かった上に超便利なワークシートってもんもない
Cはメモリの知識やらヘッダやら本当に覚える事が多かった上に超便利なワークシートってもんもない
806デフォルトの名無しさん (ワッチョイ 6a63-DjaX)
2021/05/10(月) 21:10:42.65ID:aMiH/GVN0 まったくな
807デフォルトの名無しさん (ワッチョイ 2ae6-YEtS)
2021/05/10(月) 21:13:02.21ID:vb1TGTCB0 沢山の似たようなライブラリが公開されていて
いろいろな方法でやりたいことが実現できる
それはそれはいい時代になりました
でも、コレがやりたければコウ書け!
まどろっこしいが他に道は無い!
ってのも初心者にはいいものですよ
いろいろな方法でやりたいことが実現できる
それはそれはいい時代になりました
でも、コレがやりたければコウ書け!
まどろっこしいが他に道は無い!
ってのも初心者にはいいものですよ
808デフォルトの名無しさん (ワッチョイ 6aad-M0W8)
2021/05/10(月) 21:46:59.07ID:WQl4RFpm0 条件付き書式や文字の縮小機能まであって、CopyFromRecordsetの異様な速さ
(もちろんシート関数やオートフィルタの速さも異様でしょう)
VSでは無理だし、自作も当然無理
Excel部署の人だって、1人では無理でしょう
(もちろんシート関数やオートフィルタの速さも異様でしょう)
VSでは無理だし、自作も当然無理
Excel部署の人だって、1人では無理でしょう
809デフォルトの名無しさん (ワッチョイ 6aad-M0W8)
2021/05/10(月) 21:59:47.57ID:WQl4RFpm0 でも.NETに比べれば、メモリを意識するよ
参照渡しとかMidで打刻とか
結果、値渡しの.NETの方が速いけどw(初期の.NETはVBAの方が速かったが)
参照渡しとかMidで打刻とか
結果、値渡しの.NETの方が速いけどw(初期の.NETはVBAの方が速かったが)
810デフォルトの名無しさん (ワッチョイ 732c-C7Xb)
2021/05/10(月) 22:34:57.25ID:ViCp850r0 VBA は、シェルスクリプトと同じ。
ちょっとした事しかできない
それを知らない香具師が、複雑なプログラミング用途に使って、
結局保守できなくて、Ruby の10倍ぐらいのコストが掛かる
ちょっとしたナイフで、マグロをさばいたりするのと同じ。
道具・用途のミスマッチ
だから、ウェブ系の会社は、プログラミング言語は適材適所で選択しますって言う。
道具・用途を合わせる。
言語を固定化しない
頭が柔軟。
先に道具を選択しない。
用途から道具を選ぶ
実社会では、ほとんどこればっかり
ちょっとした事しかできない
それを知らない香具師が、複雑なプログラミング用途に使って、
結局保守できなくて、Ruby の10倍ぐらいのコストが掛かる
ちょっとしたナイフで、マグロをさばいたりするのと同じ。
道具・用途のミスマッチ
だから、ウェブ系の会社は、プログラミング言語は適材適所で選択しますって言う。
道具・用途を合わせる。
言語を固定化しない
頭が柔軟。
先に道具を選択しない。
用途から道具を選ぶ
実社会では、ほとんどこればっかり
811デフォルトの名無しさん (ワッチョイ 8f63-/N+h)
2021/05/10(月) 23:04:34.19ID:E9+bgpxg0 ExcelのAPIが優秀なのであってVBA自体は微塵も良くない
812デフォルトの名無しさん (ワッチョイ be8e-gIfd)
2021/05/10(月) 23:09:51.84ID:W7s1RH430813デフォルトの名無しさん (ワッチョイ 6aad-M0W8)
2021/05/11(火) 00:42:36.92ID:OkNnulfr0 先に道具を選択しないと言いながら、道具ありきの叩きw
オープン系は外から機能を持って来るのが特徴なので、言語自体の機能は不要
なんでも呼べるシンプルなシェルのようなもの、オープン系の起点としてふさわしい
大量データの組合せならSQL ServerにBULK INSERTしてCROSS JOINするのが最速のはず
でもそのクエリを投げるのはVBAで十分で、結果の表示はExcelのCopyFromRecordsetが最速のはず
オープン系は外から機能を持って来るのが特徴なので、言語自体の機能は不要
なんでも呼べるシンプルなシェルのようなもの、オープン系の起点としてふさわしい
大量データの組合せならSQL ServerにBULK INSERTしてCROSS JOINするのが最速のはず
でもそのクエリを投げるのはVBAで十分で、結果の表示はExcelのCopyFromRecordsetが最速のはず
814デフォルトの名無しさん (ワッチョイ beb0-V+d8)
2021/05/11(火) 01:44:32.13ID:hzo0csgz0815デフォルトの名無しさん (ワッチョイ 6a01-wt3T)
2021/05/11(火) 05:27:49.58ID:/SA0DWk40 >>814
クエリってAccess VBAで動的に生成できるんだぜ
クエリってAccess VBAで動的に生成できるんだぜ
816デフォルトの名無しさん (スッップ Sd8a-V+d8)
2021/05/11(火) 07:53:09.78ID:FeyzCVkSd >>815
そんなん知ってるが、結局VBAかよw
そんなん知ってるが、結局VBAかよw
817デフォルトの名無しさん (ワッチョイ 6a01-wt3T)
2021/05/11(火) 09:04:47.57ID:/SA0DWk40818デフォルトの名無しさん (ワッチョイ 6aad-C7Xb)
2021/05/11(火) 11:31:41.06ID:OkNnulfr0 無償のSQL Serverがあるのに、わざわざ有償で低性能のAccessを使う理由は、初級者であること以外にないですよ
でもExcelはいろんな点で他では追い付けない性能があるので、初級者でなくても使う理由がある
AccessのグリッドもVS等の普通のグリッドとは違い、非同期のリピーターコントロールでできていて、
大量件数でも先頭から順次描画し、全行をメモリに持たないため、高速になるとのこと
その点では、VSより性能がいい(あと子要素の帳票フォームの簡潔さ)
そのかわり常に大量のイベントが走るため、不安定になりやすい
(DBとしてはなんちゃってなので、業者はADP等でSQL Serverと連携して使う)
その速度をさらに超えるのがExcel(特定の使い方で)
イベントが少ないので、不安定になりにくい(Delphiもその点が良かった)
イベントはブック単位で代表できるため、ソースも統合管理しやすい
でもExcelはいろんな点で他では追い付けない性能があるので、初級者でなくても使う理由がある
AccessのグリッドもVS等の普通のグリッドとは違い、非同期のリピーターコントロールでできていて、
大量件数でも先頭から順次描画し、全行をメモリに持たないため、高速になるとのこと
その点では、VSより性能がいい(あと子要素の帳票フォームの簡潔さ)
そのかわり常に大量のイベントが走るため、不安定になりやすい
(DBとしてはなんちゃってなので、業者はADP等でSQL Serverと連携して使う)
その速度をさらに超えるのがExcel(特定の使い方で)
イベントが少ないので、不安定になりにくい(Delphiもその点が良かった)
イベントはブック単位で代表できるため、ソースも統合管理しやすい
819デフォルトの名無しさん (アウアウウー Sa1f-ZHNQ)
2021/05/11(火) 11:39:24.42ID:UIB0JMdPa ユーザーフォームのマルチページ、タブ自体のBackColorプロパティってありますか?
なければ代替手段を教えてください
なければ代替手段を教えてください
820デフォルトの名無しさん (ラクッペペ MMe6-YEtS)
2021/05/11(火) 14:43:21.70ID:0OaQcACpM Excelフォームが中途半端な出来損ないだから
ここを最新のユーザーエクスペリエンス()で作り直せばAccessなんかすぐに駆逐できる
ここを最新のユーザーエクスペリエンス()で作り直せばAccessなんかすぐに駆逐できる
821デフォルトの名無しさん (アウアウウー Sa1f-ymZB)
2021/05/11(火) 18:04:28.65ID:ZT0Qqj13a そうだね
大規模なのはSQL
小回りをきかせたいときはエクセル
事務屋ならこれで8割できてしまうだろうね
大規模なのはSQL
小回りをきかせたいときはエクセル
事務屋ならこれで8割できてしまうだろうね
822デフォルトの名無しさん (ラクッペペ MMe6-YEtS)
2021/05/11(火) 19:06:43.69ID:YSh4nGIkM ただ、VBAはヤメテ
823デフォルトの名無しさん (アウアウウー Sa1f-nFSz)
2021/05/12(水) 12:57:12.16ID:mV8qcvY8a フォームがもう少し何とかなればとは思うよ
>>819然り、痒いところまであとちょっとって感じることがしばしば
>>819然り、痒いところまであとちょっとって感じることがしばしば
824デフォルトの名無しさん (ワッチョイ 6a4f-sv8/)
2021/05/12(水) 15:18:28.53ID:BdPBmasF0825デフォルトの名無しさん (ワッチョイ eada-K+t/)
2021/05/12(水) 15:47:57.27ID:MQbyKY6x0 なんだ?喧嘩勃発か?
826デフォルトの名無しさん (オイコラミネオ MMb6-xc0m)
2021/05/12(水) 15:55:47.07ID:bNkKHmITM ちょこちょこ書く分には十分なものだと思うよ
827デフォルトの名無しさん (アウアウウー Sa1f-K+t/)
2021/05/13(木) 12:11:34.16ID:RAFicIoxa そうかな
828デフォルトの名無しさん (アウアウウー Sa1f-ymZB)
2021/05/13(木) 16:10:32.92ID:yc7BZe0Ia ビジネスやってる人じゃないとわからないと思うよ
829デフォルトの名無しさん (ワッチョイ eada-K+t/)
2021/05/13(木) 17:14:21.80ID:4K+rsr0c0 確かに。趣味レベルの自分じゃ縁のない話すぎるわ
830デフォルトの名無しさん (ワッチョイ 2301-UHqe)
2021/05/13(木) 20:39:49.87ID:BPKFCkYp0 なんのビジネスだよ・・・
831デフォルトの名無しさん (スッップ Sd8a-XxK1)
2021/05/13(木) 20:43:26.98ID:nlP9UXqMd 普通の仕事で書くコードってことじゃないの
832デフォルトの名無しさん (アウアウウー Sa1f-ZHNQ)
2021/05/13(木) 20:48:35.69ID:a3vkA3q7a ビジネスってよりワークで使うかな
ワークマンってよりはビジネスマンか…
ワークマンってよりはビジネスマンか…
833デフォルトの名無しさん (アウアウウー Sa1f-ZHNQ)
2021/05/13(木) 20:50:41.60ID:a3vkA3q7a 使いどころはビジネスってよりワークかな
でもワークマンってよりはビジネスマンか…
でもワークマンってよりはビジネスマンか…
834デフォルトの名無しさん (ワッチョイ 8f68-fceI)
2021/05/13(木) 21:12:55.35ID:HJ1eRgpP0 ワークってよりビジネスな場合もあるかな
でもワークマンってよりはビジネスマンか…
でもワークマンってよりはビジネスマンか…
835デフォルトの名無しさん (ワッチョイ 2301-UHqe)
2021/05/13(木) 21:19:10.07ID:BPKFCkYp0 なんでvbs採用したんだろう
jscriptならもっと未来あっただろうに
tsへの移行も自然だっと思う
jscriptならもっと未来あっただろうに
tsへの移行も自然だっと思う
836デフォルトの名無しさん (ワッチョイ 8f68-fceI)
2021/05/13(木) 21:27:44.43ID:HJ1eRgpP0 >>835
そらもうvbaの登場時期が早かったからとしか言いようがない
vba開発チームが頑張ったんだろう
30年ぐらい前はBかCが当たり前で、インターネットもロクにないのに謎のjscriptなんて言語が勝つのは無理がある
そらもうvbaの登場時期が早かったからとしか言いようがない
vba開発チームが頑張ったんだろう
30年ぐらい前はBかCが当たり前で、インターネットもロクにないのに謎のjscriptなんて言語が勝つのは無理がある
837デフォルトの名無しさん (スッップ Sd2f-2uji)
2021/05/14(金) 08:17:06.17ID:NU+NRHZVd838デフォルトの名無しさん (スッップ Sd2f-2uji)
2021/05/14(金) 08:20:10.01ID:NU+NRHZVd839デフォルトの名無しさん (アウアウウー Sa31-p5Ne)
2021/05/14(金) 08:39:26.02ID:q7wj393Za タブを切り替えた瞬間にバックカラーも切り替えれば良いだけ
840デフォルトの名無しさん (アウアウウー Saaf-/TFo)
2021/05/14(金) 09:49:10.63ID:rbrSxZ/Wa 勝手に見出しの色のことだと思ってた
エクセルのシートにやるみたいなやつ
エクセルのシートにやるみたいなやつ
841681 (アウアウウー Sa2d-X/m6)
2021/05/14(金) 10:40:26.20ID:f8pG7pdca 681です
皆さんのおかげで無事目的のコードが作れました
あと1つ質問なのですが…
画像のように重複した数値を除く総計を算出したいと思っています
会社名毎の数値を合計すればいいだけだと思ったのですが、
どうしても重複のものも一緒に合算してしまいお手上げ状態です
因みに元データは都合によりいじれないため、合算前に重複部分を削除等はできません
恐れ入りますが、宜しくお願いします
皆さんのおかげで無事目的のコードが作れました
あと1つ質問なのですが…
画像のように重複した数値を除く総計を算出したいと思っています
会社名毎の数値を合計すればいいだけだと思ったのですが、
どうしても重複のものも一緒に合算してしまいお手上げ状態です
因みに元データは都合によりいじれないため、合算前に重複部分を削除等はできません
恐れ入りますが、宜しくお願いします
842681 (アウアウウー Sa2d-X/m6)
2021/05/14(金) 10:41:19.08ID:f8pG7pdca 画像を貼り忘れておりました
https://i.imgur.com/HLZYwhr.png
https://i.imgur.com/HLZYwhr.png
843デフォルトの名無しさん (ワッチョイ 7b42-AYRO)
2021/05/14(金) 11:33:58.88ID:+U8xhPuO0 会社ごとの重複を除く合計が出たんだからそれを足すだけだろ
逆に何をやったらまた重複したものも合算するのか理解できない
逆に何をやったらまた重複したものも合算するのか理解できない
844デフォルトの名無しさん (ワッチョイ 538e-dhLD)
2021/05/14(金) 11:38:54.22ID:usYNgZ690 いつものあいつだぞ
845デフォルトの名無しさん (アウアウウー Sa9f-drH/)
2021/05/14(金) 12:11:07.63ID:mu0LH/UJa >>841
もとデータをいじらないでも、もとデータを別のシートにコピーすればいじれるんじゃね
もとデータをいじらないでも、もとデータを別のシートにコピーすればいじれるんじゃね
846デフォルトの名無しさん (ワッチョイ 7fb0-+Dcr)
2021/05/14(金) 12:24:14.75ID:Vktv5FHm0847デフォルトの名無しさん (アウアウウー Saaf-/TFo)
2021/05/14(金) 13:02:54.78ID:kX62fe1ba 君らも構うねー
>>681への数多の回答を経て「皆さんのおかげで」としか言及しない礼儀知らずなんぞ俺なら2度と助けようと思えないけどな
>>681への数多の回答を経て「皆さんのおかげで」としか言及しない礼儀知らずなんぞ俺なら2度と助けようと思えないけどな
848デフォルトの名無しさん (ワッチョイ 9b4f-CTTZ)
2021/05/14(金) 14:11:01.00ID:C4z8VNUC0 >>841
SQLでやってるの?
VBAでやってるの?
SQLなら会社、氏名、数値でグルーピングしてから合計求めりゃいいだろうし
VBAでやってるなら上からループして会社、氏名、数値をコレクションかディクショナリーに登録しておいて
同じ組み合わせのものが登録されてたら飛ばせばいいだけじゃないの?
SQLでやってるの?
VBAでやってるの?
SQLなら会社、氏名、数値でグルーピングしてから合計求めりゃいいだろうし
VBAでやってるなら上からループして会社、氏名、数値をコレクションかディクショナリーに登録しておいて
同じ組み合わせのものが登録されてたら飛ばせばいいだけじゃないの?
849デフォルトの名無しさん (オッペケ Sr99-v+G2)
2021/05/14(金) 16:00:12.91ID:bBl2sxC0r ほんとに、よう構うわ
850デフォルトの名無しさん (ワッチョイ 0f5f-JrGs)
2021/05/14(金) 16:15:08.56ID:N2rlLeCr0 暇人しかレスしない
そりゃ高齢化する罠
そりゃ高齢化する罠
851デフォルトの名無しさん (ワッチョイ 9b4f-CTTZ)
2021/05/14(金) 17:11:44.35ID:C4z8VNUC0 暇と時間は自分で作るもの
852デフォルトの名無しさん (ワッチョイ 538e-dhLD)
2021/05/14(金) 17:53:42.33ID:usYNgZ690 この「いつものあいつ」はperlスレで釣りしてたあいつだろ
回答がないと別ID自分に回答するクズだぞ
IDをコロコロ変えていることで気付け
回答がないと別ID自分に回答するクズだぞ
IDをコロコロ変えていることで気付け
853デフォルトの名無しさん (ワッチョイ 97da-drH/)
2021/05/14(金) 18:02:17.06ID:9jitt6PZ0 ここに若い人はいないと思われ
定年退職した60〜70のジジババ様がメインの予想
定年退職した60〜70のジジババ様がメインの予想
854デフォルトの名無しさん (アウアウウー Sa9f-drH/)
2021/05/14(金) 19:35:21.69ID:EALw/Xv8a いちゃ悪いか?
855デフォルトの名無しさん (ワッチョイ 6768-AYRO)
2021/05/14(金) 19:38:49.82ID:b+Ipd3IB0856デフォルトの名無しさん (ブーイモ MM5b-M9np)
2021/05/14(金) 19:53:03.83ID:FyOJKl4nM アラサーのおっさんですわ
857デフォルトの名無しさん (ワッチョイ c7e6-JFKK)
2021/05/14(金) 20:06:30.42ID:M77EX5P+0 平成生まれのおっさんかよ
858デフォルトの名無しさん (ワッチョイ 6768-AYRO)
2021/05/14(金) 20:10:13.25ID:b+Ipd3IB0 令和生まれの赤子が常駐してたらマジでびびるしこんな言語をやるべきじゃないと諭すレベル
859デフォルトの名無しさん (ワッチョイ cd01-57RG)
2021/05/14(金) 23:02:24.08ID:eHp6F4GU0 答えたい人は答えて無視したい人は無視すればいいのに
「俺が気にくわないからお前らも答えるな!」ってガキ大将かなんか?
「俺が気にくわないからお前らも答えるな!」ってガキ大将かなんか?
860デフォルトの名無しさん (ワッチョイ 6768-AYRO)
2021/05/14(金) 23:04:28.38ID:b+Ipd3IB0861デフォルトの名無しさん (ワッチョイ 97da-drH/)
2021/05/15(土) 01:26:37.20ID:FnRhwbWQ0 定年したジジババだらけだったら異常だろ
多分30〜50代あたりのPC世代だね
多分30〜50代あたりのPC世代だね
862デフォルトの名無しさん (ワッチョイ 538f-sort)
2021/05/15(土) 10:20:07.29ID:sw5CYKBX0 ウィンドウズ95を25で迎えた人間は50歳行ってるよ
863デフォルトの名無しさん (ワッチョイ e9ad-/TFo)
2021/05/15(土) 11:32:20.38ID:ULjvOOdJ0 >>859
そんな奴おらんやろ〜
そんな奴おらんやろ〜
864デフォルトの名無しさん (エムゾネ FF2f-JrGs)
2021/05/15(土) 12:01:56.35ID:eYtIld1hF memo
https://www.mhlw.go.jp/toukei/list/dl/maikin-teisei-20210406.pdf
https://www.hello-pc.net/howto-excel/shisyagonyu/
http://www.excel.studio-kazu.jp/kw/20131108152616.html
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12216877167
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1314241033
https://docs.microsoft.com/ja-jp/office/troubleshoot/excel/floating-point-arithmetic-inaccurate-result
https://answers.microsoft.com/ja-jp/msoffice/forum/msoffice_excel-mso_windows8-mso_2013_release/excel%E3%81%AE%E5%8D%98%E7%B4%94%E3%81%AA%E8%A8%88/e5421c34-8053-4132-a0a6-14729e505376
https://www.mhlw.go.jp/toukei/list/dl/maikin-teisei-20210406.pdf
https://www.hello-pc.net/howto-excel/shisyagonyu/
http://www.excel.studio-kazu.jp/kw/20131108152616.html
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12216877167
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1314241033
https://docs.microsoft.com/ja-jp/office/troubleshoot/excel/floating-point-arithmetic-inaccurate-result
https://answers.microsoft.com/ja-jp/msoffice/forum/msoffice_excel-mso_windows8-mso_2013_release/excel%E3%81%AE%E5%8D%98%E7%B4%94%E3%81%AA%E8%A8%88/e5421c34-8053-4132-a0a6-14729e505376
865デフォルトの名無しさん (ワッチョイ bfda-Adon)
2021/05/15(土) 12:25:50.26ID:vXVB+fnY0 >>863
チッチキチー
チッチキチー
866デフォルトの名無しさん (ワッチョイ ffbb-D5yk)
2021/05/15(土) 13:49:58.81ID:YDtAUn460 Lbound関数がどうもうまく出来ないのでお知恵を拝借させてください。
--------------------------------------------------------------------
【VBA標準モジュール】
Option Explicit
Function F_Test(wRange As Range) As Integer
F_Test = LBound(wRange)
End Function
--------------------------------------------------------------------
【ワークシート】
A列は別に何でも良くて,例えば以下のとおり。
A1セル 10
A2セル 11
A3セル 12
A4セル 13
--------------------------------------------------------------------
B1に =F_Test(A1:A3) の数式で「3」という答えが欲しい。
その他,A1:A4なら「4」,A2:A3なら「2」という感じ。
要は引数の配列の添字の数が欲しい。
Functionの引数部分をVariantに変えて
Function F_Test(wRange As Variant) As Integer にしてもうまく行きませぬ。
--------------------------------------------------------------------
【VBA標準モジュール】
Option Explicit
Function F_Test(wRange As Range) As Integer
F_Test = LBound(wRange)
End Function
--------------------------------------------------------------------
【ワークシート】
A列は別に何でも良くて,例えば以下のとおり。
A1セル 10
A2セル 11
A3セル 12
A4セル 13
--------------------------------------------------------------------
B1に =F_Test(A1:A3) の数式で「3」という答えが欲しい。
その他,A1:A4なら「4」,A2:A3なら「2」という感じ。
要は引数の配列の添字の数が欲しい。
Functionの引数部分をVariantに変えて
Function F_Test(wRange As Variant) As Integer にしてもうまく行きませぬ。
867デフォルトの名無しさん (ワッチョイ ffbb-D5yk)
2021/05/15(土) 13:54:19.11ID:YDtAUn460 すみません。 LとUを間違えました。
× LBound
○ UBound
配列がありません とか #VALUE! になってしまいます。
× LBound
○ UBound
配列がありません とか #VALUE! になってしまいます。
868デフォルトの名無しさん (ラクッペペ MM17-JFKK)
2021/05/15(土) 13:55:24.28ID:Q8PHpDoBM wRange.rows.Count
869デフォルトの名無しさん (ワッチョイ 6768-AYRO)
2021/05/15(土) 14:02:11.21ID:ur6+LZEp0870デフォルトの名無しさん (ワッチョイ ffbb-D5yk)
2021/05/15(土) 14:10:21.57ID:YDtAUn460871デフォルトの名無しさん (JP 0H3f-Adon)
2021/05/15(土) 14:13:32.27ID:zrs2Seg4H >>869
セル数は一発では求まらないね
WorksheetFunction.COUNTA + WorksheetFunction.COUNTBLANK
とか、
UBound(1) * UBound(2)
とか工夫が必要
セル数は一発では求まらないね
WorksheetFunction.COUNTA + WorksheetFunction.COUNTBLANK
とか、
UBound(1) * UBound(2)
とか工夫が必要
872デフォルトの名無しさん (アウアウウー Sa31-p5Ne)
2021/05/15(土) 14:15:26.88ID:q5D0BLy0a 自分がわかっている事を、相手に伝えられない
、いっしゅの病気だと思っておいてね
、いっしゅの病気だと思っておいてね
873デフォルトの名無しさん (ワッチョイ 6768-AYRO)
2021/05/15(土) 14:17:09.49ID:ur6+LZEp0874デフォルトの名無しさん (ワッチョイ efba-u+PU)
2021/05/16(日) 15:00:47.34ID:fN3wEca+0 Sub Func()
Dim objIE As InternetExplorer
Set objIE = New InternetExplorer
objIE.Visible = True
objIE.Navigate "https://www.aguse.jp/"
Do While objIE.Busy = True Or objIE.readyState < READYSTATE_COMPLETE
DoEvents
Loop
objIE.Document.getElementById("url").Value = "99.9.9.9"
objIE.Document.getElementsByClassName("btn1").Click
End Sub
なぜ、クリック処理の所でエラー発生するのでしょうか?
Dim objIE As InternetExplorer
Set objIE = New InternetExplorer
objIE.Visible = True
objIE.Navigate "https://www.aguse.jp/"
Do While objIE.Busy = True Or objIE.readyState < READYSTATE_COMPLETE
DoEvents
Loop
objIE.Document.getElementById("url").Value = "99.9.9.9"
objIE.Document.getElementsByClassName("btn1").Click
End Sub
なぜ、クリック処理の所でエラー発生するのでしょうか?
875デフォルトの名無しさん (スッップ Sd2f-Ji+2)
2021/05/16(日) 15:15:41.45ID:cdV5xYRld >>874
getElementsByClassNameは配列を返すから(同じクラスを持つ要素の配列が返る)
getElementsByClassNameは配列を返すから(同じクラスを持つ要素の配列が返る)
876デフォルトの名無しさん (ワッチョイ 6768-AYRO)
2021/05/16(日) 15:32:17.72ID:T2VZn2Kl0 IDがあるならgetElementByIDの方が良いぞ
classのまま一つ目をclickするなら
objIE.Document.getElementsByClassName("btn1")(0).Click
classのまま一つ目をclickするなら
objIE.Document.getElementsByClassName("btn1")(0).Click
877デフォルトの名無しさん (スッップ Sd2f-Ji+2)
2021/05/16(日) 15:39:13.46ID:cdV5xYRld CSSっぽく指定できて最初の要素を返してくれるquerySelectorもオヌヌメ
878デフォルトの名無しさん (ワッチョイ efba-u+PU)
2021/05/16(日) 16:10:27.36ID:fN3wEca+0879デフォルトの名無しさん (アウアウウー Sa9f-drH/)
2021/05/16(日) 17:21:27.26ID:ak429d4ca クリックのことかー!
880デフォルトの名無しさん (ワッチョイ 97da-drH/)
2021/05/16(日) 18:59:49.40ID:uzBgfuya0 ダブルクイック
881デフォルトの名無しさん (ワッチョイ f101-1xLj)
2021/05/18(火) 02:01:26.83ID:BeO0jfUB0882デフォルトの名無しさん (ワッチョイ f563-sort)
2021/05/18(火) 06:19:11.84ID:Z0RWJbQc0 MapだのArrayだの機能入れりゃいいだけなのに入れない
どういうつもりだこいつら
どういうつもりだこいつら
883デフォルトの名無しさん (テテンテンテン MM17-6eZC)
2021/05/18(火) 08:15:11.48ID:8cwZKDcEM VBAは既に終わった過去の技術
移行を促すために意図的に使いづらくされることはあっても、改善されることはない
移行を促すために意図的に使いづらくされることはあっても、改善されることはない
884デフォルトの名無しさん (ワッチョイ f563-sort)
2021/05/18(火) 08:58:47.08ID:Z0RWJbQc0 そこにある幸せを制限されてる
上から目線で苦しめられてる
悔しくて泣く
上から目線で苦しめられてる
悔しくて泣く
885デフォルトの名無しさん (ラクッペペ MM17-JFKK)
2021/05/18(火) 11:12:26.25ID:9uIGZAIgM Office365でしか動かないVBAV2作るぐらいなら他の言語使うわな
886デフォルトの名無しさん (ワッチョイ bfda-drH/)
2021/05/18(火) 12:10:40.31ID:sRK+fHDU0 だったらそうすればいい
887デフォルトの名無しさん (アウアウウー Saaf-/TFo)
2021/05/18(火) 14:24:29.88ID:Xi/08Sqba だったらそうすればって別に俺たちはマイクロソフトじゃねえけど
888デフォルトの名無しさん (ブーイモ MM5b-esFi)
2021/05/18(火) 14:42:19.77ID:KlG9vmA0M Office365には既にOffice Scriptsがあるからそこはとっくに解決済み
あとはVBAを弾圧していくだけや
あとはVBAを弾圧していくだけや
889デフォルトの名無しさん (ラクッペペ MM17-H3XK)
2021/05/18(火) 14:48:17.90ID:R43akpHGM890デフォルトの名無しさん (ワッチョイ 9b4f-CTTZ)
2021/05/18(火) 16:33:00.45ID:5G0DWm0g0 VBAからJavaScript書くと
予約語は[]で括らなければいけなかったり
Callbynameで指定しなければいけなかったり
色々めんどくさい
Jqueryだって使えるか分からない
そもそもJavaScriptなんてWebで
クライアント周りで使うもんだから
わざわざEXCELの言語で使う用途が
よく分からない
まだクラッシックASP辺りで
VBSと組み合わせて使うなら納得もいくけど
そんな難しいもんじゃないから
必要に駆られたときに覚えれば十分だろう
予約語は[]で括らなければいけなかったり
Callbynameで指定しなければいけなかったり
色々めんどくさい
Jqueryだって使えるか分からない
そもそもJavaScriptなんてWebで
クライアント周りで使うもんだから
わざわざEXCELの言語で使う用途が
よく分からない
まだクラッシックASP辺りで
VBSと組み合わせて使うなら納得もいくけど
そんな難しいもんじゃないから
必要に駆られたときに覚えれば十分だろう
891デフォルトの名無しさん (ワッチョイ 97da-drH/)
2021/05/18(火) 18:00:53.92ID:sY2jShf/0 だから若者はVBに興味示さない
VB=高齢者のプログラミングだからでしょ?
VB=高齢者のプログラミングだからでしょ?
892デフォルトの名無しさん (ラクッペペ MM17-JFKK)
2021/05/18(火) 18:48:43.65ID:ljRiA37AM jqueryでExcel.Applicationを操作出来るように拡張するのか
夢が広がるね
夢が広がるね
893デフォルトの名無しさん (ワッチョイ 9b4f-CTTZ)
2021/05/18(火) 18:49:34.47ID:5G0DWm0g0 EXCELで簡単にプログラム組むことが出来るからな
VBと言うのをVBSのこと言ってるのかVB.Netのこと言ってるのかVBAのこと言ってるのか知らんが
EXCELで楽したくてVBAから入る若い人は多い。
VBA覚えた人がVB.NetやってC#やってそこからWeb系に入って初めてJavaScriptをHTMLやCSSと一緒に覚える人なんてザラ。
VBと言うのをVBSのこと言ってるのかVB.Netのこと言ってるのかVBAのこと言ってるのか知らんが
EXCELで楽したくてVBAから入る若い人は多い。
VBA覚えた人がVB.NetやってC#やってそこからWeb系に入って初めてJavaScriptをHTMLやCSSと一緒に覚える人なんてザラ。
894デフォルトの名無しさん (ワッチョイ 6768-AYRO)
2021/05/18(火) 19:43:19.02ID:LbhgO8Sf0895デフォルトの名無しさん (ワッチョイ 6768-AYRO)
2021/05/18(火) 19:49:05.74ID:LbhgO8Sf0 >>890
VBAでjs使うのは、一つは動的なサイトのスクレイピングする時
htmlだけの操作でしんどい時は、jsでclick辺りさせるだけでサクサク進む事がある
ってかこれ以外でjs書くことはほぼ無いと思う。
jquery使えない時は無理やりappendかなんかしてたけど、もうやり方も忘れたな
色々試している内にchromeのコンソールにぶっこむのが一番楽って結論にたどり着いた
VBAでjs使うのは、一つは動的なサイトのスクレイピングする時
htmlだけの操作でしんどい時は、jsでclick辺りさせるだけでサクサク進む事がある
ってかこれ以外でjs書くことはほぼ無いと思う。
jquery使えない時は無理やりappendかなんかしてたけど、もうやり方も忘れたな
色々試している内にchromeのコンソールにぶっこむのが一番楽って結論にたどり着いた
896デフォルトの名無しさん (ワッチョイ 312c-TVsO)
2021/05/18(火) 20:48:35.33ID:Y1RJXdtP0 Ruby で、Selenium Webdriver, Nokogiri で、
スクレイピング・ブラウザの自動操作する時にも、
JavaScript, jQuery を使える
埋め込みRuby・ERB を使えば、どんなファイルにも、
<%= 式 %>, <% 式 %> で、Rubyの式を埋め込める
a.html.erb, b.js.erb みたいに、
HTML, JavaScript ファイル内に、Rubyの式を埋め込める
スクレイピング・ブラウザの自動操作する時にも、
JavaScript, jQuery を使える
埋め込みRuby・ERB を使えば、どんなファイルにも、
<%= 式 %>, <% 式 %> で、Rubyの式を埋め込める
a.html.erb, b.js.erb みたいに、
HTML, JavaScript ファイル内に、Rubyの式を埋め込める
897デフォルトの名無しさん (ワッチョイ bb8e-dhLD)
2021/05/18(火) 20:57:22.08ID:dFlzu8QN0898デフォルトの名無しさん (ワッチョイ 97da-drH/)
2021/05/18(火) 23:24:28.39ID:sY2jShf/0 そんな事よりさ、おぢーさん達は加齢臭の処理ちゃんとしてくれよ
若者に失礼だと思わね?プンプンプンプンさ
若者に失礼だと思わね?プンプンプンプンさ
899デフォルトの名無しさん (ワッチョイ 9b4f-CTTZ)
2021/05/19(水) 00:19:04.29ID:GKVmaO5T0900デフォルトの名無しさん (ワッチョイ 9b4f-CTTZ)
2021/05/19(水) 00:20:19.16ID:GKVmaO5T0 >>898
ジジイであってクレクレw
ジジイであってクレクレw
901デフォルトの名無しさん (ワッチョイ 97da-drH/)
2021/05/19(水) 01:20:40.10ID:ZD8mpcBW0 くっせぇーなマジで
パソコンまで加齢臭プンプンなんじゃねーのか爺さん達よ?
パソコンまで加齢臭プンプンなんじゃねーのか爺さん達よ?
902デフォルトの名無しさん (ブーイモ MM5b-1bOW)
2021/05/19(水) 07:45:42.64ID:WworO/MIM 5chは加齢臭ジジイの巣窟ですよ。
子供は他所で遊んだ方が良いですよ。
子供は他所で遊んだ方が良いですよ。
903デフォルトの名無しさん (ワッチョイ d191-2uji)
2021/05/19(水) 14:08:44.86ID:IrWk1Moq0 >>870
それはVariantの2次元配列にRange.Valueを代入して高速化を行う場合の話で、単に行数求める場合に使うのは筋が違う。
Dim varRng As Variant
varRng=wRange.Value
F_TEST=Ubound(varRng,1)
というか、Ubound使うなら引数をRangeにするのが間違い。
Function F_Test(wRange As Variant) As Integer
F_Test = UBound(wRange,1)
End Function
として、呼び出す時に
Debug.Print F_TEST(sht.Range("A1:A3").Value)
とする。
それはVariantの2次元配列にRange.Valueを代入して高速化を行う場合の話で、単に行数求める場合に使うのは筋が違う。
Dim varRng As Variant
varRng=wRange.Value
F_TEST=Ubound(varRng,1)
というか、Ubound使うなら引数をRangeにするのが間違い。
Function F_Test(wRange As Variant) As Integer
F_Test = UBound(wRange,1)
End Function
として、呼び出す時に
Debug.Print F_TEST(sht.Range("A1:A3").Value)
とする。
904デフォルトの名無しさん (スップ Sd03-y/av)
2021/05/19(水) 18:26:06.40ID:Vg/vRgKrd 標準モジュールにcsvFile関連に関わるコードをまとめようと思ってます。
フォームABCと3つありそれぞれのTextBoxの文字列を使用するのですが、引数にフォームを渡すと後でモジュールの引数?を見た時にどのフォーム?ってなるんですが、なんか分かりやすい方法ありますか?
フォームABCと3つありそれぞれのTextBoxの文字列を使用するのですが、引数にフォームを渡すと後でモジュールの引数?を見た時にどのフォーム?ってなるんですが、なんか分かりやすい方法ありますか?
905デフォルトの名無しさん (ワッチョイ 2b3d-LqSn)
2021/05/19(水) 18:34:23.71ID:/q2TOFSQ0 変数名に書けばいい
906デフォルトの名無しさん (ワッチョイ 9b4f-CTTZ)
2021/05/19(水) 20:30:25.56ID:GKVmaO5T0907デフォルトの名無しさん (ササクッテロレ Sp63-swby)
2021/05/19(水) 22:00:48.31ID:+ffuEuggp みんな、どうやってVBA覚えた?必要に迫られて?
908デフォルトの名無しさん (ワッチョイ bfda-drH/)
2021/05/19(水) 22:12:24.80ID:jE/FqELl0 >>907
まだ覚えられないの?
まだ覚えられないの?
909デフォルトの名無しさん (ワッチョイ cd01-gSvD)
2021/05/19(水) 23:13:26.00ID:GsBTRjrb0 あわしろ氏は、Microsoft固有の言語は覚えないほうが良いと言ってた。
910デフォルトの名無しさん (ワッチョイ bb8e-dhLD)
2021/05/19(水) 23:17:32.49ID:cF8YUUzA0 馬鹿の記憶キャパシティは限られるからな
911デフォルトの名無しさん (ワッチョイ 5363-rCl2)
2021/05/19(水) 23:22:58.20ID:mqMv5E730 覚えるとかそういうものではない
912デフォルトの名無しさん (ワッチョイ 97da-drH/)
2021/05/19(水) 23:42:58.43ID:ZD8mpcBW0 >>907
必要に迫られて覚えたもなにも、中学か高校で習うだろ普通。
必要に迫られて覚えたもなにも、中学か高校で習うだろ普通。
913デフォルトの名無しさん (JP 0H3f-Adon)
2021/05/20(木) 00:07:22.00ID:6elix0QCH >>909
.netもMS固有の言語みたいなもんだが、普通に色んな職場で使われとるやん
.netもMS固有の言語みたいなもんだが、普通に色んな職場で使われとるやん
914デフォルトの名無しさん (ワッチョイ 97da-drH/)
2021/05/20(木) 01:22:13.99ID:BLOb04120 学習しなくても最初からできる天才タイプもたまにいるよマジで
915デフォルトの名無しさん (JP 0H3f-Adon)
2021/05/20(木) 01:56:26.37ID:6elix0QCH そもそもマイクロソフト固有の言語ってなんやねん
みんな既成の言語や他社製品を買収して、それを手直しした物ばっかやん
みんな既成の言語や他社製品を買収して、それを手直しした物ばっかやん
916デフォルトの名無しさん (ワッチョイ 7fb0-+Dcr)
2021/05/20(木) 03:27:31.15ID:sxWNX54s0 microsoft固有の言語って今どきある?
VBAとかBATとか、失われゆくものだけでしょ。
そりゃ今から時間をかけて覚えるのはもったいないわ。
他の言語使える人なら、VBAなんてわざわざ学習する時間をかける必要もなく、それなりのマクロは組めると思うけど。
VBAとかBATとか、失われゆくものだけでしょ。
そりゃ今から時間をかけて覚えるのはもったいないわ。
他の言語使える人なら、VBAなんてわざわざ学習する時間をかける必要もなく、それなりのマクロは組めると思うけど。
917デフォルトの名無しさん (ワッチョイ 97da-drH/)
2021/05/20(木) 04:02:59.34ID:BLOb04120 あまいわ、Excel独自のルール知らないとまともなVBA組めんわ
表示形式とかその辺もそうだし。
表示形式とかその辺もそうだし。
918デフォルトの名無しさん (アウアウウー Sa9f-drH/)
2021/05/20(木) 04:05:55.57ID:dmfe27mta 覚えるんじゃなくて調べればいいだけだし
919デフォルトの名無しさん (ワッチョイ 7fb0-+Dcr)
2021/05/20(木) 05:01:49.61ID:sxWNX54s0 >>917
それは言語の問題ではなくAPIの問題かと
それは言語の問題ではなくAPIの問題かと
920デフォルトの名無しさん (ワッチョイ 895f-qq88)
2021/05/20(木) 07:32:27.21ID:z6ttNILB0 調べるのも学習コストだと思うがね
言葉遊びだな
言葉遊びだな
921デフォルトの名無しさん (JP 0H3f-Adon)
2021/05/20(木) 08:16:14.68ID:6elix0QCH 環境に左右されないコード書く仕事なんてそうそうないだろ
何やるにしても調査と学習は必要だわ
何やるにしても調査と学習は必要だわ
922デフォルトの名無しさん (ワッチョイ bfda-drH/)
2021/05/20(木) 09:53:49.41ID:3grODMDb0 VBAは覚えてからでなければ組めないほど難しいとも思えん
目的の動作に必要な部分だけを検索すれば初心者でもすぐ出きるとおもう
自分で考えないで質問ばっかりすりから覚えられないんじゃねーの
目的の動作に必要な部分だけを検索すれば初心者でもすぐ出きるとおもう
自分で考えないで質問ばっかりすりから覚えられないんじゃねーの
923デフォルトの名無しさん (ワッチョイ bf63-sort)
2021/05/20(木) 09:59:01.67ID:QrP75Wi10 A:まず顧客名XXの行、商品とかいてある列のデータをとります
B:()
このざま
けしてとっつきやすくはない
B:()
このざま
けしてとっつきやすくはない
924デフォルトの名無しさん (ワッチョイ 9b4f-CTTZ)
2021/05/20(木) 10:03:51.70ID:XA+o92qv0 みんなすまん
最近Ruby信者やあわしろ教信者がこのスレに多発するようになったのはひょっとすると俺のせいかも知れない
ぶっちゃけ始めるのにいい言語て何 part4
https://mevius.5ch.net/test/read.cgi/tech/1615612545/
このスレでVBA推ししてたから
変な狂信者達がこのスレにうろつき出すようになったのかも知れない
そうだとしたらマジですまんかった
最近Ruby信者やあわしろ教信者がこのスレに多発するようになったのはひょっとすると俺のせいかも知れない
ぶっちゃけ始めるのにいい言語て何 part4
https://mevius.5ch.net/test/read.cgi/tech/1615612545/
このスレでVBA推ししてたから
変な狂信者達がこのスレにうろつき出すようになったのかも知れない
そうだとしたらマジですまんかった
925デフォルトの名無しさん (アウアウクー MM23-rCl2)
2021/05/20(木) 13:25:45.32ID:8sYLIX1sM 宣伝すんな糞が
926デフォルトの名無しさん (ゲマー MM5b-S/Fb)
2021/05/20(木) 17:45:33.93ID:Gd/4i8WIM ユーザーフォームで行の選択位置を変えるボタン▲▼がクリック数と一致しない問題があったんだけど
あんまり早くクリックするとダブルクリックイベントに持って行かれるという記事見て目から鱗だったわ
あんまり早くクリックするとダブルクリックイベントに持って行かれるという記事見て目から鱗だったわ
927デフォルトの名無しさん (ゲマー MM5b-S/Fb)
2021/05/20(木) 17:46:49.15ID:Gd/4i8WIM ↑ボタンの動作
928デフォルトの名無しさん (ワッチョイ bfda-drH/)
2021/05/20(木) 17:51:20.11ID:3grODMDb0 目から鱗、鼻から牛乳
929デフォルトの名無しさん (ワッチョイ 538e-dhLD)
2021/05/20(木) 18:31:11.76ID:A6q2Mdlm0930デフォルトの名無しさん (ワッチョイ cd01-gSvD)
2021/05/20(木) 18:32:38.54ID:PnXLQc6v0 はい、頭大丈夫か、いただきました〜。
ごっつあんです。
ごっつあんです。
931デフォルトの名無しさん (ゲマー MM5b-S/Fb)
2021/05/20(木) 18:39:24.43ID:zC/KxF8YM >>929
理由を知ってるからそう思えるのであって意外と分からんもんよ
理由を知ってるからそう思えるのであって意外と分からんもんよ
932デフォルトの名無しさん (ワッチョイ 538e-dhLD)
2021/05/20(木) 18:51:23.66ID:A6q2Mdlm0933デフォルトの名無しさん (JP 0H3f-Adon)
2021/05/20(木) 22:09:53.73ID:6elix0QCH 目からビーム
934デフォルトの名無しさん (ワッチョイ bfda-Adon)
2021/05/20(木) 22:29:51.31ID:3grODMDb0 喉から手
935デフォルトの名無しさん (ワッチョイ cd01-gSvD)
2021/05/20(木) 23:27:14.65ID:PnXLQc6v0 はい、常識だろ、いただきました〜。
ごっつあんです。
ごっつあんです。
936デフォルトの名無しさん (ワッチョイ 97da-drH/)
2021/05/20(木) 23:59:48.81ID:BLOb04120 良く考えてよ、そんなにVBAが楽だったらそこらじゅうでエキスパートが溢れ帰ってるわ
937デフォルトの名無しさん (ワッチョイ 4e8e-/g3G)
2021/05/21(金) 00:49:19.69ID:59CyTM7+0 >>936
そもそも世の中馬鹿だらけ
そもそも世の中馬鹿だらけ
938デフォルトの名無しさん (ワッチョイ 8b01-7S+s)
2021/05/21(金) 01:00:38.44ID:QTMvWd2k0 >>937
おまえそれ、あわしろ氏にも言えるの?
おまえそれ、あわしろ氏にも言えるの?
939デフォルトの名無しさん (ワッチョイ 4e8e-/g3G)
2021/05/21(金) 01:32:27.01ID:59CyTM7+0940デフォルトの名無しさん (ワッチョイ 8b01-7S+s)
2021/05/21(金) 02:15:25.58ID:QTMvWd2k0 あわしろ氏から見たらお前もバカの一人にすぎないのだが。
941デフォルトの名無しさん (ワッチョイ 4e8e-/g3G)
2021/05/21(金) 02:19:49.30ID:59CyTM7+0 >>940
悔しかったか?
悔しかったか?
942デフォルトの名無しさん (ワッチョイ caba-lZiV)
2021/05/21(金) 02:25:12.36ID:7tu/wNc+0 ttps://ja.asuka.io/whois/126.31.241.3
の”SoftbankBB ABUSE”を取得したいと思っているのですが、どのようにすればいいのでしょうか?
Dim objIE As InternetExplorer
Set objIE = New InternetExplorer
--省略--
objIE.Document.getElementsByClassName("whois-result")
の”SoftbankBB ABUSE”を取得したいと思っているのですが、どのようにすればいいのでしょうか?
Dim objIE As InternetExplorer
Set objIE = New InternetExplorer
--省略--
objIE.Document.getElementsByClassName("whois-result")
943デフォルトの名無しさん (ワッチョイ 1ada-M/Q1)
2021/05/21(金) 05:43:15.48ID:BTMhnzWw0944デフォルトの名無しさん (ワッチョイ 5b2c-HNTQ)
2021/05/21(金) 05:57:52.66ID:fpWGW1ET0 Ruby のnokogiri でスクレイピングして、
CSS セレクター・正規表現で、2つマッチした
require 'open-uri'
require 'nokogiri'
url = "そのURL"
doc = Nokogiri::HTML( open( url ) )
element = doc.at_css( '#result-126_31_241_3 > span' ) # id の直下のspan
re = /^role:/ # 行頭から
element.content.each_line do | line | # 1行ずつ処理する
line.chomp! # 末尾の改行を削除する
line.match( re ) { |matched| puts line }
end
出力
role: ABUSE SOFTBANKJP
role: SoftbankBB ABUSE
CSS セレクター・正規表現で、2つマッチした
require 'open-uri'
require 'nokogiri'
url = "そのURL"
doc = Nokogiri::HTML( open( url ) )
element = doc.at_css( '#result-126_31_241_3 > span' ) # id の直下のspan
re = /^role:/ # 行頭から
element.content.each_line do | line | # 1行ずつ処理する
line.chomp! # 末尾の改行を削除する
line.match( re ) { |matched| puts line }
end
出力
role: ABUSE SOFTBANKJP
role: SoftbankBB ABUSE
945デフォルトの名無しさん (ワッチョイ 9a4f-uIOb)
2021/05/21(金) 08:28:08.99ID:QhlqoCTd0 Rubyなんてカーバンクルの頭にめり込んでいるような気持ち悪い名前の言語使うくらいなら
JavascriptとCSSとJQueryの組み合わせでいいと思うの
JavascriptとCSSとJQueryの組み合わせでいいと思うの
946デフォルトの名無しさん (JP 0H7f-4P7j)
2021/05/21(金) 08:48:15.27ID:gnmVjeq7H >>942
roleが2つ以上あった時、どうやって選ぶの?
roleが2つ以上あった時、どうやって選ぶの?
947デフォルトの名無しさん (ワッチョイ 4e8e-/g3G)
2021/05/21(金) 15:24:51.08ID:xTrBkQ+z0 Ruby馬鹿は>>712のような嘘を書いて逃げる馬鹿
948デフォルトの名無しさん (ワッチョイ 1ada-M/Q1)
2021/05/21(金) 15:33:03.33ID:BTMhnzWw0 知ったかばっか
949デフォルトの名無しさん (ワッチョイ 0eda-4P7j)
2021/05/21(金) 16:32:03.60ID:CZi3W7Lh0 知ったかばっかだと知った
950デフォルトの名無しさん (ワッチョイ bb5f-nJde)
2021/05/21(金) 17:10:27.15ID:IWCymVKS0 VBAを覚え始めて2週間だけど
まだこのスレに書かれているコードの意味が全くわからないwww
でもコード書くの楽しいなって思ってやってます
まだこのスレに書かれているコードの意味が全くわからないwww
でもコード書くの楽しいなって思ってやってます
951デフォルトの名無しさん (スプッッ Sd5a-yo2n)
2021/05/21(金) 19:05:32.27ID:ggQpFO18d 同じだ
自分はVBAエキスパートの勉強してるよ
自分はVBAエキスパートの勉強してるよ
952デフォルトの名無しさん (ワッチョイ bb5f-nJde)
2021/05/21(金) 19:59:51.31ID:IWCymVKS0 自分も来月ベーシックうけまーす!
953デフォルトの名無しさん (ワッチョイ 1ada-M/Q1)
2021/05/21(金) 20:18:27.47ID:BTMhnzWw0 人によってはワークシート関数よりマクロの方が難しいっていう人もいるからね。逆もいるしね。
>>940
誰?
誰?
955デフォルトの名無しさん (ワッチョイ 4e63-5zR4)
2021/05/21(金) 20:42:52.48ID:bfSFy0HM0 ぼく
956デフォルトの名無しさん (ワッチョイ 4e63-5zR4)
2021/05/21(金) 20:43:08.07ID:bfSFy0HM0 うそです
957デフォルトの名無しさん (ワッチョイ caba-lZiV)
2021/05/21(金) 20:43:58.66ID:7tu/wNc+0958デフォルトの名無しさん (ワッチョイ 4e10-GLy4)
2021/05/21(金) 22:35:02.45ID:Yczu/9Oq0 左手に電卓を持ち、右手は交互に電卓、マウス、テンキーを使い分ける上司とお局様とその下僕達
その下僕の後輩が自分
これが日本の一部上場企業なのか?
その下僕の後輩が自分
これが日本の一部上場企業なのか?
959デフォルトの名無しさん (ワッチョイ 1ada-M/Q1)
2021/05/22(土) 00:10:21.12ID:UfMUNU1m0 うん。だってエクセルが計算間違えたらどうすんの?
電卓で計算した数字をパソコンに打ち込むのは昔からの伝統だよ
電卓で計算した数字をパソコンに打ち込むのは昔からの伝統だよ
960デフォルトの名無しさん (ワッチョイ 4e8e-/g3G)
2021/05/22(土) 00:36:58.31ID:mcqOhXTe0 馬鹿が作った変な式やマクロのせいで合わないなんてこともある
961デフォルトの名無しさん (スプッッ Sd92-4P7j)
2021/05/22(土) 00:40:22.69ID:Oef+89DPd 2進数は変な誤差が出るから信用できないってさ
962デフォルトの名無しさん (ワッチョイ 0eda-4P7j)
2021/05/22(土) 01:34:41.39ID:S7UeFiS10 初心者がつくったマクロのほうが信用できない
963デフォルトの名無しさん (ワッチョイ 4e8e-/g3G)
2021/05/22(土) 01:44:44.93ID:mcqOhXTe0 >>962
初心者というより、ここで質問しなきゃいけないような馬鹿のことだな
初心者というより、ここで質問しなきゃいけないような馬鹿のことだな
964デフォルトの名無しさん (ワッチョイ 0eda-4P7j)
2021/05/22(土) 02:41:18.25ID:S7UeFiS10 あと、悪意のある熟練者が作ったマクロも信用できないけどな
965デフォルトの名無しさん (ワッチョイ 378e-/g3G)
2021/05/22(土) 02:56:17.42ID:vJuB/ZK60966デフォルトの名無しさん (ワッチョイ 9a4f-uIOb)
2021/05/22(土) 05:49:02.27ID:Tpb6ZbgH0 >>961
Doubleとかの浮動小数点を使う型の場合、IEEE754準拠のために起こるやつのことだね
それは例えば小数点以下4桁までなら通貨型が固定小数点型だから使えるとか
一度割ったときの値が丸めを行うところまで10の倍数掛けて整数桁にしてから計算して、
その後最初に掛けた分で割ってやれば解決するようなことを知らない人が組むとそうなるわけで
別にEXCEL VBAに限ったことじゃないし、組む人の問題だよ
JavaみたいにbigDecimal型とか持ってる言語もあるにはあるけどね
後、VBAでは四捨五入も銀行丸めになるから
それがイヤならWorksheetFunctionでRound使うとかね。
Doubleとかの浮動小数点を使う型の場合、IEEE754準拠のために起こるやつのことだね
それは例えば小数点以下4桁までなら通貨型が固定小数点型だから使えるとか
一度割ったときの値が丸めを行うところまで10の倍数掛けて整数桁にしてから計算して、
その後最初に掛けた分で割ってやれば解決するようなことを知らない人が組むとそうなるわけで
別にEXCEL VBAに限ったことじゃないし、組む人の問題だよ
JavaみたいにbigDecimal型とか持ってる言語もあるにはあるけどね
後、VBAでは四捨五入も銀行丸めになるから
それがイヤならWorksheetFunctionでRound使うとかね。
967デフォルトの名無しさん (ワッチョイ 1ada-M/Q1)
2021/05/22(土) 07:10:12.96ID:UfMUNU1m0 回答者が雑な回答で悪い風潮あるみたいだけど、質問してくる初級者にも問題あるって話
なんでそんな質問してるのだろ?ってのが多いから
なんでそんな質問してるのだろ?ってのが多いから
968デフォルトの名無しさん (ブーイモ MM7f-AlZ6)
2021/05/22(土) 07:51:26.87ID:qSrTa/6NM 分からないことが何か分からないぐらい分からないとそういう質問になるのはよくあることだと思うよ
だから何が分からなくて悩んでいるのかを想像して答えられる範囲で答えるのがベターじゃないかな
それが回答者にとって勉強になる事だってあるだろうし
質問者も答えを咀嚼した上で追加で疑問点が出るなら質問してもらって構わないし、答えを理解できなかったらどの部分が分かりづらかったか聞けばいい
質問スレで何か質問するとバカだのアホだの言われるような質問しづらい雰囲気なのは本末転倒でしょう
だから何が分からなくて悩んでいるのかを想像して答えられる範囲で答えるのがベターじゃないかな
それが回答者にとって勉強になる事だってあるだろうし
質問者も答えを咀嚼した上で追加で疑問点が出るなら質問してもらって構わないし、答えを理解できなかったらどの部分が分かりづらかったか聞けばいい
質問スレで何か質問するとバカだのアホだの言われるような質問しづらい雰囲気なのは本末転倒でしょう
969デフォルトの名無しさん (ワッチョイ 9a4f-uIOb)
2021/05/22(土) 08:18:29.11ID:Tpb6ZbgH0970デフォルトの名無しさん (JP 0H7f-4P7j)
2021/05/22(土) 08:18:32.56ID:6qbME2XxH 直接の会話だと不明点を確認しながら進めるのが普通なのに、掲示板だと後出しと言われる風潮はいいかげん頭が固すぎると思うなの
971デフォルトの名無しさん (ワッチョイ 275f-AM9O)
2021/05/22(土) 08:20:17.81ID:GrewoE1S0 そういう奴はかまってちゃん
人を煽ってレスが欲しくてしょうがないんだろうな
人を煽ってレスが欲しくてしょうがないんだろうな
972デフォルトの名無しさん (ワッチョイ 1ada-M/Q1)
2021/05/22(土) 09:04:45.45ID:UfMUNU1m0 文句があるならヤフー知恵袋でやりとりしてください。
絶対答えなきゃいけないなんていう義理は存在しないし
絶対答えなきゃいけないなんていう義理は存在しないし
973デフォルトの名無しさん (ワッチョイ 0eda-cE2x)
2021/05/22(土) 12:27:49.41ID:S7UeFiS10 >>970
回答してもらっておいて文句いうような奴には教えんよ
回答してもらっておいて文句いうような奴には教えんよ
974デフォルトの名無しさん (テテンテンテン MMb6-C3gm)
2021/05/22(土) 12:43:21.86ID:0H5cNeIlM975デフォルトの名無しさん (ワッチョイ 1ada-M/Q1)
2021/05/22(土) 13:15:35.23ID:UfMUNU1m0 文句あるなら他所の質問掲示板へ
976デフォルトの名無しさん (アウアウクー MMfb-bxiD)
2021/05/22(土) 15:54:43.50ID:idCJV0DjM 直接の会話じゃないので
977デフォルトの名無しさん (アウアウクー MMfb-bxiD)
2021/05/22(土) 15:58:35.26ID:idCJV0DjM 何がしたくて何をして何を期待して何が起きたかぐらいは誰でも手間かければ書けるのにその手間を質問者側に押し付けるな
978デフォルトの名無しさん (ワッチョイ 8b01-7S+s)
2021/05/22(土) 18:31:31.81ID:Lbh7lRt50 質問者あっての質問スレですからなあ。
もう少し気を使っていただかないと。
もう少し気を使っていただかないと。
979デフォルトの名無しさん (ワッチョイ 1ada-M/Q1)
2021/05/22(土) 21:20:31.42ID:UfMUNU1m0 自助努力してください
980デフォルトの名無しさん (ササクッテロロ Spbb-bXkj)
2021/05/24(月) 01:46:42.03ID:SKWG4E+9p 在庫管理でクロス集計表を使ってるんだけど
配列で取り込んだデータをデータがあったセル位置に戻す時って
どう指定してあげればいいの?
【用途】
納期毎に設定される納品数を在庫から引いて
いつ欠品になるか知りたい
伝わるか分からないけど↓
使ってるフォーマット形式
縦列
部品名
在庫
横
納期
納品数
配列で取り込んだデータをデータがあったセル位置に戻す時って
どう指定してあげればいいの?
【用途】
納期毎に設定される納品数を在庫から引いて
いつ欠品になるか知りたい
伝わるか分からないけど↓
使ってるフォーマット形式
縦列
部品名
在庫
横
納期
納品数
981デフォルトの名無しさん (ワッチョイ 7a8f-5zR4)
2021/05/24(月) 04:35:06.28ID:nupyrRyu0 他人に伝わる表現方法を考えたほうがいいと思う。いやまじで。
982デフォルトの名無しさん (ワッチョイ dad9-e3Lj)
2021/05/24(月) 10:56:44.51ID:ERBOMeaq0 >>980
配列で取り込んだデータをデータがあったセル位置に戻すことが必要な理由とは?
配列で取り込んだデータをデータがあったセル位置に戻すことが必要な理由とは?
983デフォルトの名無しさん (スフッ Sdba-4P7j)
2021/05/24(月) 12:46:37.40ID:ipl2L3KHd984デフォルトの名無しさん (ラクッペペ MMb6-jLf6)
2021/05/24(月) 14:13:14.63ID:NNOyF0WeM 違うよ
クロス集計表の元データの位置に書き戻してやらないとクロス集計表が壊れるじゃないか
そんなの質問者は望んでいないよ。たぶん
クロス集計表の元データの位置に書き戻してやらないとクロス集計表が壊れるじゃないか
そんなの質問者は望んでいないよ。たぶん
985デフォルトの名無しさん (ワッチョイ 4eda-nRgY)
2021/05/24(月) 14:19:09.76ID:LTdpDg+b0 誰か質問を説明的に翻訳してくれ
986デフォルトの名無しさん (ワッチョイ 1a42-+D+D)
2021/05/24(月) 14:44:27.07ID:ircPqyoF0 元データが変化するわけじゃないならセルに返す必要ないんじゃないの
987デフォルトの名無しさん (ワッチョイ 1ada-M/Q1)
2021/05/24(月) 14:44:58.38ID:I5I449Rl0 結局こうなるわ
コミュニケーションから勉強だな
コミュニケーションから勉強だな
988デフォルトの名無しさん (ワッチョイ 0754-keJv)
2021/05/24(月) 14:55:47.77ID:MUcNJueI0 Cellの値の変更時の処理を記述する為に、WorkSheet_Change イベントを使ってるのですが、
監視対象の Cell をダブルクリックして入力カーソル「|」表示状態になっただけで(値を変更せずに Cell がフォーカスを失っても)、イベントが発生してしまいます。
本当に値が変更された時だけ、WorkSheet_Change イベントが発生するようにするにはどうすればいいでしょうか。
監視対象の Cell をダブルクリックして入力カーソル「|」表示状態になっただけで(値を変更せずに Cell がフォーカスを失っても)、イベントが発生してしまいます。
本当に値が変更された時だけ、WorkSheet_Change イベントが発生するようにするにはどうすればいいでしょうか。
989デフォルトの名無しさん (ワッチョイ 0754-keJv)
2021/05/24(月) 14:55:59.69ID:MUcNJueI0 Cellの値の変更時の処理を記述する為に、WorkSheet_Change イベントを使ってるのですが、
監視対象の Cell をダブルクリックして入力カーソル「|」表示状態になっただけで(値を変更せずに Cell がフォーカスを失っても)、イベントが発生してしまいます。
本当に値が変更された時だけ、WorkSheet_Change イベントが発生するようにするにはどうすればいいでしょうか。
監視対象の Cell をダブルクリックして入力カーソル「|」表示状態になっただけで(値を変更せずに Cell がフォーカスを失っても)、イベントが発生してしまいます。
本当に値が変更された時だけ、WorkSheet_Change イベントが発生するようにするにはどうすればいいでしょうか。
990デフォルトの名無しさん (ワッチョイ 4eda-nRgY)
2021/05/24(月) 14:57:27.80ID:LTdpDg+b0 エスパー
福井県立図書館 覚え違いタイトル集
http://www.library-archives.pref.fukui.lg.jp/tosyo/category/shiraberu/368.html
福井県立図書館 覚え違いタイトル集
http://www.library-archives.pref.fukui.lg.jp/tosyo/category/shiraberu/368.html
991デフォルトの名無しさん (ワッチョイ 977c-4Cki)
2021/05/24(月) 14:57:57.69ID:uCaZzUhZ0 そもそも在庫管理なんてexcelでやる内容じゃないしな
外部にdb用意して
excelはそこから参照して
クロスなりなんなり汁
外部にdb用意して
excelはそこから参照して
クロスなりなんなり汁
992デフォルトの名無しさん (スプッッ Sd5a-yo2n)
2021/05/24(月) 16:02:34.89ID:SNshkRQxd お前らノーパソ?デスクトップ?
MyPCはどっちでプログラミングしてる?
MyPCはどっちでプログラミングしてる?
993デフォルトの名無しさん (ワッチョイ 9a4f-uIOb)
2021/05/24(月) 16:10:42.22ID:aftRNFP10 そもそもクロス集計をピボットで行ってるのか
SQLでCROSS JOIN使ってるかで
答えが変わるしな
SQLでCROSS JOIN使ってるかで
答えが変わるしな
994デフォルトの名無しさん (ブーイモ MMe7-NFnM)
2021/05/24(月) 16:12:48.27ID:pNkn+mP6M995デフォルトの名無しさん (ワッチョイ 9a4f-uIOb)
2021/05/24(月) 16:19:31.03ID:aftRNFP10 >>989
本当に値が変わったときのみ
Worksheet_Changeイベントを拾うのは恐らく無理。
元々のセル値をとっておき、Worksheet_Changeイベントの処理の中で対象セルの値が変わったを判定して、違っていれば処理を行うようにする。
本当に値が変わったときのみ
Worksheet_Changeイベントを拾うのは恐らく無理。
元々のセル値をとっておき、Worksheet_Changeイベントの処理の中で対象セルの値が変わったを判定して、違っていれば処理を行うようにする。
996デフォルトの名無しさん (アウアウウー Sac7-M/Q1)
2021/05/24(月) 20:24:23.56ID:m/UNwUrga 編集時に同じ値を入力した場合も
変更扱いじゃね
変更扱いじゃね
997デフォルトの名無しさん (ワッチョイ 9a4f-uIOb)
2021/05/24(月) 21:45:40.40ID:aftRNFP10 >>996
それって何か意味あるの?
それって何か意味あるの?
998デフォルトの名無しさん (スフッ Sdba-4P7j)
2021/05/24(月) 22:50:52.89ID:ooplu3lnd 紙の表を目で追いながら画面を見ずにどんどん入力するとか普通にある
以前と同じかいちいち確認しながらより能率がいいから
以前と同じかいちいち確認しながらより能率がいいから
999デフォルトの名無しさん (ワッチョイ 8b01-m5P2)
2021/05/25(火) 01:55:38.61ID:HvNz/zzH0 質問いいですか?
1000デフォルトの名無しさん (ワッチョイ 9a8e-/g3G)
2021/05/25(火) 02:04:56.40ID:tL58A71i0 お断りします
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 67日 3時間 56分 13秒
新しいスレッドを立ててください。
life time: 67日 3時間 56分 13秒
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を超えています。これ以上書き込みはできません。
ニュース
- 中国国営メディア「沖縄は日本ではない」… ★6 [BFU★]
- 高市政権にパイプ役不在…日中高まる緊張 公明党の連立離脱影響、自民内にも懸念「自分でまいた種は自分で刈り取ってもらわないと」★2 [ぐれ★]
- 【速報】 日経平均の下落率3%超す、財政懸念で長期金利上昇 [お断り★]
- ナイツ塙が指摘のローソンコーヒーカップ、ロゴ「L」で誤解生みデザイン変更へ 在庫使い切る3か月後にリニューアル [muffin★]
- 【速報】 高市政権、「日本版DOGE」を立ち上げ 米国で歳出削減をした「政府効率化省(DOGE)」になぞらえたもの [お断り★]
- バービー、 台湾有事の発言の波紋で「たまったもんじゃない」「高市さんに真意は聞きたい」「国民に向けて説明してほしい」 [muffin★]
- 映画「ゼルダの伝説」、リンクとゼルダ姫が白人になってしまう。日本のものは日本人だろうが!! [592058334]
- 高市早苗「株やってる奴ザマァwww格差是正のためにも、もっと暴落した方がいいよwww」(´・ω・`)確かに。 [252835186]
- 【悲報】早速高市首相のせいで全国の民泊でキャンセルラッシュwwwwwwwwwwww 経営者も嘆き「こんな事は初めてだ…」😲 [871926377]
- 中国「高市が謝罪撤回しないとこれ全部なくなるけどどうする?」 [931948549]
- んなっしょい🍬禁止🈲のお🏡
- 【動画】男女混合レスリングのガチ試合の様子がこちら [738130642]
