!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
スレ立ての際は一行目に
!extend:checked:vvvvv:1000:512
と入れてスレ立てして下さい
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part48
http://mevius.2ch.net/test/read.cgi/tech/1494890685/
※関連スレ
VBAなんでも質問スレ Part2
http://mevius.2ch.net/test/read.cgi/tech/1432173164/
Access VBA 質問スレ Part1
http://mevius.2ch.net/test/read.cgi/tech/1328536426/
Excel総合相談所 126
https://mevius.2ch.net/test/read.cgi/bsoft/1496487719/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
探検
Excel VBA 質問スレ Part49©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ bb2e-8SzA)
2017/06/26(月) 02:15:14.60ID:T3ylemnb02デフォルトの名無しさん (アウアウエー Sadf-hzVx)
2017/06/26(月) 05:44:32.43ID:SxRL95TLa うんこ
3デフォルトの名無しさん (ワッチョイ bf6d-ZLad)
2017/06/26(月) 06:30:06.46ID:K3TbTzv304デフォルトの名無しさん (アウアウエー Sadf-AGoN)
2017/06/26(月) 13:46:58.30ID:2dV2LE9Ka おちるな!
5デフォルトの名無しさん (スッップ Sdbf-iOY8)
2017/06/26(月) 17:31:56.55ID:mUlZZrNcd 埋め
6デフォルトの名無しさん (スッップ Sdbf-iOY8)
2017/06/26(月) 19:50:29.41ID:mUlZZrNcd Everything breaks.
7デフォルトの名無しさん (ワッチョイ d76d-ZLad)
2017/06/26(月) 22:30:10.16ID:9LdZXFFA0 地獄の社内SE
https://anond.hatelabo.jp/20170626005657
> 社内SEはなんとなく楽そうなイメージがあったので、就職した。
> 言語はエクセルVBAとVB.NET 1.0。
> 中身を見るとどちらもかなりやばい。
>
> VBA編
> ・ウォッチウインドウを知らないのか、変数はすべてセルに入れてる。変数名はすべてRANGE("A1").valueみたいな感じで全く意味が分からない。
> ・処理遷移がおかしい。
> セルに1を入れる。そのセルのchangeイベントで処理が動くとか。SHIFT+F2が無力化されてる。
> ・なるべくワークシート関数で処理してる
> データベースからとってきたデータを丸ごとワークシートにコピーしてif,vlookup,match関数を駆使して帳票にしたり、CSVにしてる。
> データ100件制限があったり、1関数を直すときは100行コピーしないといけない。画面中に埋め尽くされたワークシート関数をみて途方に暮れる。
> ・format関数を知らない。
> 8桁の日付をとりたいときyear、month、day関数がワークシートにあり、
> その下の行で月の二けた判定、日の二けた判定のif関数で頭の0をつけ3行目でconcatenateしている
> ・タイマー起動
> 毎朝100本ぐらいのマクロが動いてる。タイマー起動なので、毎日セットしないといけない。(タスクスケジューラーを知らない)
> がんがんエラーが発生するので、マクロ設定をエラー処理対象外のエラーで中断にしないと動かない。
> ・遅い
> textboxのchangeイベントでDBからのデータ取得処理を入れているので、データが多くなると1文字打つごとに数分待つ状態。exitイベントを知らないらしい
> DBの更新処理でもテーブル全件とってきて、ループしながらキーが一致するのを探して更新。
> ・変数や関数のスコープの管理
> ない。基本グローバル。
> ・クラス
> ない。
> ・ネスト
> ない。
> そんなつっこみどころしかないEXCELマクロが200本以上ある。
> おじいさんが20年にわたって深夜残業や休日出勤を厭わず作ってきた、地獄の社内システムの担当になったらしい。
https://anond.hatelabo.jp/20170626005657
> 社内SEはなんとなく楽そうなイメージがあったので、就職した。
> 言語はエクセルVBAとVB.NET 1.0。
> 中身を見るとどちらもかなりやばい。
>
> VBA編
> ・ウォッチウインドウを知らないのか、変数はすべてセルに入れてる。変数名はすべてRANGE("A1").valueみたいな感じで全く意味が分からない。
> ・処理遷移がおかしい。
> セルに1を入れる。そのセルのchangeイベントで処理が動くとか。SHIFT+F2が無力化されてる。
> ・なるべくワークシート関数で処理してる
> データベースからとってきたデータを丸ごとワークシートにコピーしてif,vlookup,match関数を駆使して帳票にしたり、CSVにしてる。
> データ100件制限があったり、1関数を直すときは100行コピーしないといけない。画面中に埋め尽くされたワークシート関数をみて途方に暮れる。
> ・format関数を知らない。
> 8桁の日付をとりたいときyear、month、day関数がワークシートにあり、
> その下の行で月の二けた判定、日の二けた判定のif関数で頭の0をつけ3行目でconcatenateしている
> ・タイマー起動
> 毎朝100本ぐらいのマクロが動いてる。タイマー起動なので、毎日セットしないといけない。(タスクスケジューラーを知らない)
> がんがんエラーが発生するので、マクロ設定をエラー処理対象外のエラーで中断にしないと動かない。
> ・遅い
> textboxのchangeイベントでDBからのデータ取得処理を入れているので、データが多くなると1文字打つごとに数分待つ状態。exitイベントを知らないらしい
> DBの更新処理でもテーブル全件とってきて、ループしながらキーが一致するのを探して更新。
> ・変数や関数のスコープの管理
> ない。基本グローバル。
> ・クラス
> ない。
> ・ネスト
> ない。
> そんなつっこみどころしかないEXCELマクロが200本以上ある。
> おじいさんが20年にわたって深夜残業や休日出勤を厭わず作ってきた、地獄の社内システムの担当になったらしい。
8デフォルトの名無しさん (ワッチョイ 9f06-NIhq)
2017/06/26(月) 22:46:39.40ID:sK3t30Mo09デフォルトの名無しさん (ワッチョイ 9f6f-LvKX)
2017/06/26(月) 22:56:04.38ID:TlqSsAWd0 地獄とか書いてるけど、
全然地獄じゃないんだろうな。
強敵と戦う悟空みたいな感じで。
全然地獄じゃないんだろうな。
強敵と戦う悟空みたいな感じで。
10デフォルトの名無しさん (ワッチョイ 970d-q+YL)
2017/06/26(月) 23:06:06.76ID:Wf2yMC4X0 VBAが仕事っていいじゃねーか
業務の合間にマクロ作ってるけエクセルが得意な人扱いしかされない
カラオケが上手いとか酒が強いとかと同じ扱いだよ俺もVBAだけやってたいな
業務の合間にマクロ作ってるけエクセルが得意な人扱いしかされない
カラオケが上手いとか酒が強いとかと同じ扱いだよ俺もVBAだけやってたいな
11デフォルトの名無しさん (ワッチョイ 9faa-ZLad)
2017/06/26(月) 23:18:33.41ID:NfcBoQUW0 何か公開するとか解説記事を続けて書くとかしないと残るものがないよな
12デフォルトの名無しさん (ワッチョイ 9711-AGoN)
2017/06/27(火) 00:31:50.14ID:Ou4JxjyB0 >>7
ヤバすぎでしょ
ヤバすぎでしょ
13デフォルトの名無しさん (ワッチョイ bf23-+Ny0)
2017/06/27(火) 01:25:43.69ID:mSdvPxdC0 >>9
おれ、ああいうののメンテナンスする仕事したこと有るけど地獄だよ。
おれ、ああいうののメンテナンスする仕事したこと有るけど地獄だよ。
14デフォルトの名無しさん (ワッチョイ d723-vKbm)
2017/06/27(火) 05:39:28.87ID:RyWS1Zia0 そこまでわかってるなら直すだけじゃん
15デフォルトの名無しさん (ワッチョイ 178f-ZLad)
2017/06/27(火) 12:11:28.10ID:VIhV6lAx0 inputとoutputがわかってんなら作り直したほうが…
16デフォルトの名無しさん (アウアウエー Sadf-AGoN)
2017/06/27(火) 13:08:41.86ID:NeDeRylha どう考えてもイチから作り直すべきだが、それを現場がどう理解してるかだわ
セルに値が入ってないと管理できない!とかありそう
セルに値が入ってないと管理できない!とかありそう
17デフォルトの名無しさん (ワッチョイ 9711-H8Dq)
2017/06/27(火) 20:49:18.00ID:s+Xomzrw0 質問失礼します。
ある一つのセルに、氏名コメント改行文字が5人分入っていて、選択するとformにテキストボックスが5人分用意されている所に、それぞれの氏名に合わせて入る様になっています。
やりたい事は、formのテキストボックスに作業者が入力したのの更新履歴を付けたいのです。
作業者は自分の氏名のテキストボックスに入力することになっています。
コマンドボタンをクリックしたタイミングで、どのテキストボックスが最後に変更されたのか取得できる方法が有りましたら教えてください。
ある一つのセルに、氏名コメント改行文字が5人分入っていて、選択するとformにテキストボックスが5人分用意されている所に、それぞれの氏名に合わせて入る様になっています。
やりたい事は、formのテキストボックスに作業者が入力したのの更新履歴を付けたいのです。
作業者は自分の氏名のテキストボックスに入力することになっています。
コマンドボタンをクリックしたタイミングで、どのテキストボックスが最後に変更されたのか取得できる方法が有りましたら教えてください。
18デフォルトの名無しさん (ワッチョイ 9f11-NIhq)
2017/06/28(水) 01:46:45.72ID:YSCBV96g0 >>17
AfterUpdateイベントやChangeイベントで最後に更新されたテキストボックスを記録して、ボタンを押したときにその内容を読み取る、みたいな感じになる。
↓こんな感じ
Private LastUpdated
Private Sub TextBox1_AfterUpdate()
LastUpdated = "TextBox1"
End Sub
Private Sub TextBox2_AfterUpdate()
LastUpdated = "TextBox2"
End Sub
Private Sub CommandButton1_Click()
Dim str
If Not IsEmpty(LastUpdated) Then str = Me.Controls(LastUpdated).Text
'処理
End Sub
AfterUpdateイベントやChangeイベントで最後に更新されたテキストボックスを記録して、ボタンを押したときにその内容を読み取る、みたいな感じになる。
↓こんな感じ
Private LastUpdated
Private Sub TextBox1_AfterUpdate()
LastUpdated = "TextBox1"
End Sub
Private Sub TextBox2_AfterUpdate()
LastUpdated = "TextBox2"
End Sub
Private Sub CommandButton1_Click()
Dim str
If Not IsEmpty(LastUpdated) Then str = Me.Controls(LastUpdated).Text
'処理
End Sub
19デフォルトの名無しさん (ワッチョイ 9f11-NIhq)
2017/06/28(水) 01:49:22.55ID:YSCBV96g020デフォルトの名無しさん (ワッチョイ 37e4-nLBY)
2017/06/28(水) 03:46:14.99ID:2pXrvXuM0 しばらく前に騒ぎになったランサムウェアってVBAマクロなのか
マクロウイルスって今でもあるんだな
マクロウイルスって今でもあるんだな
21デフォルトの名無しさん (ワッチョイ 9711-H8Dq)
2017/06/28(水) 06:18:19.57ID:tYXWZB4k0 >>19
ご回答ありがとうございます。
今回の件はAfterUpdateで対応出来ました。
今後の為にお聞きしたいのですが、例えばテキストボックスが100個とかあった場合、VBのコントロール配列の様に一つのプロシージャで100個のテキストボックスのAfterUpdateに対応することは出来ませんか?
よろしくお願いします。
ご回答ありがとうございます。
今回の件はAfterUpdateで対応出来ました。
今後の為にお聞きしたいのですが、例えばテキストボックスが100個とかあった場合、VBのコントロール配列の様に一つのプロシージャで100個のテキストボックスのAfterUpdateに対応することは出来ませんか?
よろしくお願いします。
22デフォルトの名無しさん (ブーイモ MMcf-xRMs)
2017/06/28(水) 12:49:44.66ID:zWYciN7lM >>21
「vba フォーム イベント withevents」とかでググれば、クラスモジュールを使ってイベント付きコントロールを配列またはコレクション化する方法が出てくる。
フォームの履歴管理には、クラス変数にフォームへの参照と、配列のインデックスまたはコレクションのキーなんかを渡して処理すればたぶんOK。
「vba フォーム イベント withevents」とかでググれば、クラスモジュールを使ってイベント付きコントロールを配列またはコレクション化する方法が出てくる。
フォームの履歴管理には、クラス変数にフォームへの参照と、配列のインデックスまたはコレクションのキーなんかを渡して処理すればたぶんOK。
23デフォルトの名無しさん (ワッチョイ 9711-H8Dq)
2017/06/28(水) 22:25:33.70ID:tYXWZB4k0 >>22
ありがとうございます。
witheventsを使用してテキストボックスのチェンジイベントをひとまとめに出来ました。
afterupdateをまとめれるともっと良かったのですが、それは無理そうなのでこれで満足です。
本当にありがとうございます!
ありがとうございます。
witheventsを使用してテキストボックスのチェンジイベントをひとまとめに出来ました。
afterupdateをまとめれるともっと良かったのですが、それは無理そうなのでこれで満足です。
本当にありがとうございます!
24デフォルトの名無しさん (ワッチョイ f7e4-d3en)
2017/06/28(水) 23:11:40.00ID:E86Fbm8W0 100という10進数をDo loop を使って2進数に変換させるにはどのようにすればよいのでしょうか?
イメージとしては、100を2ずつ割っていってそこで出たそれぞれの余りの数をセルA1に表示させたいです。
よろしくお願い致します。
イメージとしては、100を2ずつ割っていってそこで出たそれぞれの余りの数をセルA1に表示させたいです。
よろしくお願い致します。
25デフォルトの名無しさん (ワキゲー MMdf-Jbg4)
2017/06/28(水) 23:24:22.72ID:DPzzKFKPM >>24
それでいいと思います
それでいいと思います
26デフォルトの名無しさん (スプッッ Sd62-qZPv)
2017/06/29(木) 00:00:46.01ID:xnkaqZb4d >>25
それが出来ないです…
それが出来ないです…
27デフォルトの名無しさん (ワッチョイ 4211-nP2k)
2017/06/29(木) 00:02:23.49ID:+TVRrlUj028デフォルトの名無しさん (ワッチョイ 4211-nP2k)
2017/06/29(木) 00:03:15.79ID:+TVRrlUj0 間違えた。DEC2BINでした。
29デフォルトの名無しさん (ワッチョイ c98f-wjSU)
2017/06/29(木) 02:18:27.81ID:m+1z5FeZ0 セルA1を毎回上書きしてるとか
まぁこの手の奴はぐぐれば腐るほどでてくるけどな
まぁこの手の奴はぐぐれば腐るほどでてくるけどな
30デフォルトの名無しさん (ワッチョイ c206-nP2k)
2017/06/29(木) 10:46:30.06ID:eyQ8k34N0 セルA1を瞬時に上書きしていって、それで何をしたいんだか?
最終的な目標は何なのかワカンネ w
最終的な目標は何なのかワカンネ w
31デフォルトの名無しさん (ワキゲー MM8a-I/sj)
2017/06/29(木) 12:17:53.07ID:JWTkSooHM 1100100を出力したいんだろ
32デフォルトの名無しさん (ワキゲー MM8a-I/sj)
2017/06/29(木) 12:28:02.00ID:JWTkSooHM 曖昧だけど設計まであるのにできてないのなら今どんなコードを書いてるのか提示して質問してほしいなぁ
いっそのこと「この仕様を満たすコードをください!」と言ってくれてもいいけど
いっそのこと「この仕様を満たすコードをください!」と言ってくれてもいいけど
33デフォルトの名無しさん (JP 0H92-9Mth)
2017/06/29(木) 16:10:07.03ID:YLVns9yBH はい、作ったよ
仕様満たしてるかどうかはあんたたちで
みっちり見てね
バグ見つけたら教えてね
で仕様齟齬をあぶり出してもらわないと
仕様を具体的に言わないクライアント(身内だけど)とは付き合えない
仕様満たしてるかどうかはあんたたちで
みっちり見てね
バグ見つけたら教えてね
で仕様齟齬をあぶり出してもらわないと
仕様を具体的に言わないクライアント(身内だけど)とは付き合えない
34デフォルトの名無しさん (JP 0H16-CicO)
2017/06/29(木) 16:13:40.02ID:ye6KcLeHH >>33
作る前に要件定義すればいいのに
作る前に要件定義すればいいのに
35デフォルトの名無しさん (JP 0H92-9Mth)
2017/06/29(木) 17:05:28.77ID:YLVns9yBH36デフォルトの名無しさん (JP 0H16-CicO)
2017/06/29(木) 17:16:17.14ID:ye6KcLeHH >>35
面倒でも文書化して読んでもらうのがいいよ
読んで始めて、自分が何を欲しているか気づく場合もあるし
後は、プロトタイプかな
全部できて「これ、全然違うし」とか言われるリスクあるなら、そういうことやってみたらいいと思う
面倒でも文書化して読んでもらうのがいいよ
読んで始めて、自分が何を欲しているか気づく場合もあるし
後は、プロトタイプかな
全部できて「これ、全然違うし」とか言われるリスクあるなら、そういうことやってみたらいいと思う
37デフォルトの名無しさん (ドコグロ MMe1-zH8r)
2017/06/29(木) 19:36:46.27ID:tZRd6cgNM >>36
そう言う連中は要件定義書なんて読まんよ
そう言う連中は要件定義書なんて読まんよ
38デフォルトの名無しさん (ワッチョイ c206-nP2k)
2017/06/29(木) 20:02:23.80ID:eyQ8k34N0 このスレの人間って質問者置いてけぼりであーだこーだ言うのが多いけど、一番ムカつくのは、
肝心の質問者が自分のやりたい事はこういうことだって言わないこと。
少しは自分の質問に責任くらい持ちやがれ
肝心の質問者が自分のやりたい事はこういうことだって言わないこと。
少しは自分の質問に責任くらい持ちやがれ
39デフォルトの名無しさん (ワッチョイ c66f-WwN4)
2017/06/29(木) 20:20:17.81ID:XN0IVm4b0 こういった輩が多いから双方の軋轢が絶えないんだろな
先方はまったくの門外漢だ て前提で仕事を引き受けられない
相手も自分と同レベルだと信じて疑わない もしくは少し下ぐらい
初めて住宅を新築する顧客が、いきなり詳細設計図渡されて理解できるか?
ソッチで仕様書と図面引いてください って言ってるのと同様だぞ?
引き受けるからにはその仕事を請け負う責任も勿論だが
これから実施する作業の概要・概略を相手に理解してもらうテクニックだって
必要だろ それを持ち合わせないならサンプル品なり試作品なり作ってでも
相手と同じレベルで進捗を図るのが普通じゃ無いのか?
こっちはざっくり動きや結果を見越せるけれど、相手にもそれを要求するのは
傲慢でしかないんだが
いわんや、相手の業種・業態に依ってはコチラ側が思いもしないような入力・
操作が要求されるケースだってままある
仕様も要件も書き出せますよ なんてぇ企業相手ならおまえら不要だろ
社内で事足りるわ
も少し謙虚に成れんのか 会議だ仕様だ要件だなんてぇことに無駄な時間を
費やすぐらいなら、とっとと試作して「こうですか?」で何歩も進むだろ
いやすまん なんでもない
先方はまったくの門外漢だ て前提で仕事を引き受けられない
相手も自分と同レベルだと信じて疑わない もしくは少し下ぐらい
初めて住宅を新築する顧客が、いきなり詳細設計図渡されて理解できるか?
ソッチで仕様書と図面引いてください って言ってるのと同様だぞ?
引き受けるからにはその仕事を請け負う責任も勿論だが
これから実施する作業の概要・概略を相手に理解してもらうテクニックだって
必要だろ それを持ち合わせないならサンプル品なり試作品なり作ってでも
相手と同じレベルで進捗を図るのが普通じゃ無いのか?
こっちはざっくり動きや結果を見越せるけれど、相手にもそれを要求するのは
傲慢でしかないんだが
いわんや、相手の業種・業態に依ってはコチラ側が思いもしないような入力・
操作が要求されるケースだってままある
仕様も要件も書き出せますよ なんてぇ企業相手ならおまえら不要だろ
社内で事足りるわ
も少し謙虚に成れんのか 会議だ仕様だ要件だなんてぇことに無駄な時間を
費やすぐらいなら、とっとと試作して「こうですか?」で何歩も進むだろ
いやすまん なんでもない
40デフォルトの名無しさん (ワッチョイ c206-nP2k)
2017/06/29(木) 21:03:34.33ID:eyQ8k34N0 ここの人間は質問者から金貰ってるわけでもなんでもねーわ
41デフォルトの名無しさん (ワキゲー MM8a-I/sj)
2017/06/29(木) 21:07:43.56ID:JWTkSooHM42デフォルトの名無しさん (オイコラミネオ MMd6-BlaP)
2017/06/29(木) 21:21:50.99ID:pDUcXkTQM コミュ障同志でケンカすんな
43デフォルトの名無しさん (ワッチョイ 6d2e-mQuD)
2017/06/29(木) 22:02:03.85ID:irMBslcI0 最近、趣味でVBAのプログラムを始めた初心者です
区切り記号を含むテキストデータを Split() を使って二次元配列に入れようと思っています。
テキストデータは、vbLf で改行、行内のデータは、vbTab で区切り です
<例: String 型の TextData の内容>
あああああ アアアアアアアアア
いい イイイイイ
ううううう ウウウ
(以下、同様の形式で全500行ある)
いろいろ宣言の仕方などを試した結果、次の方法でエラーなく実行できたのですが…
Dim tmpDim As Variant
Dim sqrDim(500) As Variant
tmpDim = Split( TextData, vbLf )
For i = 0 to UBound( tmpDim ) - 1
For j = 0 to 1
sqrDim( i ) = Split( sqrDim( i ), vbTab )
Next j
Next i
これでは、途中の38行目を読み込んだところ(i=37,j=1)で、
実行時エラー '9':
インデックスが有効範囲にありません
とのエラーが出て止まってしまいます。
(一次方向(行)には500個確保できていると思うので、なぜインデックスエラーなのか不思議です)
2回目のSplitの受けも、別の一次元配列で行い、後で二次元配列に格納すればいいとは思いますが
上手く二次元配列でSplitのデータを受けるやり方はあるのでしょうか? お手数ですが教えてください
区切り記号を含むテキストデータを Split() を使って二次元配列に入れようと思っています。
テキストデータは、vbLf で改行、行内のデータは、vbTab で区切り です
<例: String 型の TextData の内容>
あああああ アアアアアアアアア
いい イイイイイ
ううううう ウウウ
(以下、同様の形式で全500行ある)
いろいろ宣言の仕方などを試した結果、次の方法でエラーなく実行できたのですが…
Dim tmpDim As Variant
Dim sqrDim(500) As Variant
tmpDim = Split( TextData, vbLf )
For i = 0 to UBound( tmpDim ) - 1
For j = 0 to 1
sqrDim( i ) = Split( sqrDim( i ), vbTab )
Next j
Next i
これでは、途中の38行目を読み込んだところ(i=37,j=1)で、
実行時エラー '9':
インデックスが有効範囲にありません
とのエラーが出て止まってしまいます。
(一次方向(行)には500個確保できていると思うので、なぜインデックスエラーなのか不思議です)
2回目のSplitの受けも、別の一次元配列で行い、後で二次元配列に格納すればいいとは思いますが
上手く二次元配列でSplitのデータを受けるやり方はあるのでしょうか? お手数ですが教えてください
44デフォルトの名無しさん (ワッチョイ 066d-B6M/)
2017/06/29(木) 22:23:02.61ID:InemyE5a045デフォルトの名無しさん (ワッチョイ 4211-nP2k)
2017/06/29(木) 22:33:09.86ID:+TVRrlUj0 >>43
これ通るの?
For j = 0 to 1
sqrDim( i ) = Split( sqrDim( i ), vbTab )
Next j
で sqrDim( i ) を2回splitしてる。
1回めは文字列のsplitだからいいけど、2回めは配列のsplitになってエラーになりそうだけど。
For j のループは不要。
あとついでに
For i = 0 to UBound( tmpDim ) - 1
だとTextDataの最終行のデータが配列に格納されないけど問題ないか?
これ通るの?
For j = 0 to 1
sqrDim( i ) = Split( sqrDim( i ), vbTab )
Next j
で sqrDim( i ) を2回splitしてる。
1回めは文字列のsplitだからいいけど、2回めは配列のsplitになってエラーになりそうだけど。
For j のループは不要。
あとついでに
For i = 0 to UBound( tmpDim ) - 1
だとTextDataの最終行のデータが配列に格納されないけど問題ないか?
46デフォルトの名無しさん (ワッチョイ 42aa-wjSU)
2017/06/29(木) 22:47:04.00ID:CQo0iGok0 >>43
こうでしょ
Dim tmpDim As Variant
Dim sqrDim As Variant
tmpDim = Split( TextData, vbLf )
ReDim sqrDim(LBound(tmpDim), UBound(tmpDim))
For i = LBound(tmpDim) to UBound( tmpDim )
sqrDim( i ) = Split( tmpDim( i ), vbTab )
Next i
sqrDimは2次元配列じゃなくて配列の配列になるけど、むしろこっちの方があとで楽だと思う。
こうでしょ
Dim tmpDim As Variant
Dim sqrDim As Variant
tmpDim = Split( TextData, vbLf )
ReDim sqrDim(LBound(tmpDim), UBound(tmpDim))
For i = LBound(tmpDim) to UBound( tmpDim )
sqrDim( i ) = Split( tmpDim( i ), vbTab )
Next i
sqrDimは2次元配列じゃなくて配列の配列になるけど、むしろこっちの方があとで楽だと思う。
4743 (ワッチョイ 6d2e-mQuD)
2017/06/29(木) 23:32:28.05ID:irMBslcI0 >>44-46
早々に回答ください、どうもありがとうございます。
いろいろ回答を頂いておきながら、大変申し訳ないのですが、
38行目のデータをよく見たところ、TAB区切りではなく、ここだけスペースが入っていました
(他は、各行に2個の要素があったのですが、ここだけ要素が1個でした)
そして、これを修正したら、エラーなく実行できました。
お手数をおかけし、申し訳ありませんでした。
おっしゃる通り、j のループは不要ですね。(いろいろ修正していて、j を使わなくなったようです)
> だとTextDataの最終行のデータが配列に格納されないけど問題ないか?
いえ、ちゃんと最終行まで格納出来てました
(UBound()は要素数を表しているように思います)
> ReDim sqrDim(LBound(tmpDim), UBound(tmpDim))
ReDim は使ったことがないので、また調べてみます
以上、ありがとうございました。
早々に回答ください、どうもありがとうございます。
いろいろ回答を頂いておきながら、大変申し訳ないのですが、
38行目のデータをよく見たところ、TAB区切りではなく、ここだけスペースが入っていました
(他は、各行に2個の要素があったのですが、ここだけ要素が1個でした)
そして、これを修正したら、エラーなく実行できました。
お手数をおかけし、申し訳ありませんでした。
おっしゃる通り、j のループは不要ですね。(いろいろ修正していて、j を使わなくなったようです)
> だとTextDataの最終行のデータが配列に格納されないけど問題ないか?
いえ、ちゃんと最終行まで格納出来てました
(UBound()は要素数を表しているように思います)
> ReDim sqrDim(LBound(tmpDim), UBound(tmpDim))
ReDim は使ったことがないので、また調べてみます
以上、ありがとうございました。
4843 (ワッチョイ 6d2e-mQuD)
2017/06/29(木) 23:41:18.00ID:irMBslcI0 >>45
> これ通るの?
> For j = 0 to 1
> sqrDim( i ) = Split( sqrDim( i ), vbTab )
> Next j
これ、写し間違いでした。 2回目に Split するのは tmpDim でした
×: sqrDim( i ) = Split( sqrDim( i ), vbTab )
○: sqrDim( i ) = Split( tmpDim( i ), vbTab )
申し訳ありませんでした
> これ通るの?
> For j = 0 to 1
> sqrDim( i ) = Split( sqrDim( i ), vbTab )
> Next j
これ、写し間違いでした。 2回目に Split するのは tmpDim でした
×: sqrDim( i ) = Split( sqrDim( i ), vbTab )
○: sqrDim( i ) = Split( tmpDim( i ), vbTab )
申し訳ありませんでした
49デフォルトの名無しさん (ワッチョイ 4211-nP2k)
2017/06/30(金) 00:06:21.55ID:pQmgso2J0 >>47
> (UBound()は要素数を表しているように思います)
一応言っておくと、これは間違い。
UBound(tmpDim) は配列tmpDimのインデックスの最大値を返す。
TextDataが500行(vbLfが499個)だとしたら、tmpDimのインデックスは(0 to 499)になるから、UBound(tmpDim) は499を返す。
このコードのsqrDim(500)が全部埋まってるのであれば、TextDataは501行あるはず。
まあ結果がOKならいいんだけどね。
> (UBound()は要素数を表しているように思います)
一応言っておくと、これは間違い。
UBound(tmpDim) は配列tmpDimのインデックスの最大値を返す。
TextDataが500行(vbLfが499個)だとしたら、tmpDimのインデックスは(0 to 499)になるから、UBound(tmpDim) は499を返す。
このコードのsqrDim(500)が全部埋まってるのであれば、TextDataは501行あるはず。
まあ結果がOKならいいんだけどね。
50デフォルトの名無しさん (ワッチョイ 4211-nP2k)
2017/06/30(金) 00:09:11.22ID:pQmgso2J0 失礼、>>49に間違い。
sqrDim(500) だとsqrDimの要素数は501だから、全部埋まってるの場合のTextDataの行数は502行になるはず。
sqrDim(500) だとsqrDimの要素数は501だから、全部埋まってるの場合のTextDataの行数は502行になるはず。
5143 (ワッチョイ 6d2e-mQuD)
2017/06/30(金) 00:48:26.80ID:K3G7Sb4z0 >>49-50
> 一応言っておくと、これは間違い。
> UBound(tmpDim) は配列tmpDimのインデックスの最大値を返す。
申し訳ないです。
おっしゃる通り、ググってみるとそのように書いてました。
なお、TextDataは実際には400行前後のため、偶然上手く動いているように見えてたのですね
(実際は、400〜499までループが回っており、タチの悪いバグになるところでした、感謝です)
前にC言語を少しやっていたので、同じ扱いだと思っていましたが違ってたんですね
わざわざありがとうございます。
> 一応言っておくと、これは間違い。
> UBound(tmpDim) は配列tmpDimのインデックスの最大値を返す。
申し訳ないです。
おっしゃる通り、ググってみるとそのように書いてました。
なお、TextDataは実際には400行前後のため、偶然上手く動いているように見えてたのですね
(実際は、400〜499までループが回っており、タチの悪いバグになるところでした、感謝です)
前にC言語を少しやっていたので、同じ扱いだと思っていましたが違ってたんですね
わざわざありがとうございます。
52デフォルトの名無しさん (ワッチョイ 42aa-wjSU)
2017/06/30(金) 00:56:40.46ID:6tFD7y9X053デフォルトの名無しさん (JP 0H92-9Mth)
2017/06/30(金) 10:48:30.68ID:cwrb3MSvH ここの強者はExcelVBAエキスパートの資格持ってるの?
簡単そうだから取ろうかなと思ってる
簡単そうだから取ろうかなと思ってる
54デフォルトの名無しさん (JP 0H16-CicO)
2017/06/30(金) 10:58:10.76ID:vRopsyNtH >>53
取ればいいんじゃないの?
取ればいいんじゃないの?
55デフォルトの名無しさん (ワッチョイ 5d73-BlaP)
2017/06/30(金) 11:59:14.93ID:p88B6ZFT0 そんなもんMOS以下の価値しかないと思うが…
56デフォルトの名無しさん (ワッチョイ 6d3d-nP2k)
2017/06/30(金) 17:12:37.88ID:cZqMSATW0 コンピュータ関連も色んな資格あるけど、ああいう資格を基準にして採用している所ってどれだけあるんだろ。
57デフォルトの名無しさん (ワッチョイ 066d-wjSU)
2017/06/30(金) 20:10:03.92ID:UW7c2V+i0 基準にはしないかな
あーできるんですねって程度。どちらにしても実地試験は受けてもらう
あーできるんですねって程度。どちらにしても実地試験は受けてもらう
58デフォルトの名無しさん (ワッチョイ c26f-CicO)
2017/06/30(金) 23:09:21.97ID:+ePBm/Xa0 俺、プログラムは作れるけど、試験は落ちそうだな。
DimとかRowとか、短い文字は打てるんだけど、
長いのは、普段コピペしてるから、打てない。
最近、やっとColumnsを間違えずに打てるようになったわ。
それまでは、Corums? ん? Colmns? え? Culomus? 違う?
Colums? わかんね。 もう諦めてコピペしよう、みたいな感じ。
DimとかRowとか、短い文字は打てるんだけど、
長いのは、普段コピペしてるから、打てない。
最近、やっとColumnsを間違えずに打てるようになったわ。
それまでは、Corums? ん? Colmns? え? Culomus? 違う?
Colums? わかんね。 もう諦めてコピペしよう、みたいな感じ。
59デフォルトの名無しさん (ワッチョイ 066d-dnIi)
2017/06/30(金) 23:13:28.48ID:UW7c2V+i0 プログラムの実技試験で暗記力が必要なのはそろそろどうかとは思う
60デフォルトの名無しさん (ワッチョイ 2e8f-wjSU)
2017/07/01(土) 00:25:54.92ID:ozDMgMeF0 10年選手だけど
フィボナッチとかハノイの塔とかソラで出できないぞ俺
フィボナッチとかハノイの塔とかソラで出できないぞ俺
61デフォルトの名無しさん (ワッチョイ 066d-B6M/)
2017/07/01(土) 00:29:13.54ID:QYfDEdV/0 それは数学の知識の問題だと思うので、別にできなくてもいいと思う。多分一生役に立たない
でも最小二乗法とか漸近線、偏差値など、統計学的な知識はあったほうが良いと思う
でも最小二乗法とか漸近線、偏差値など、統計学的な知識はあったほうが良いと思う
62デフォルトの名無しさん (ワッチョイ 4623-hx6n)
2017/07/01(土) 04:46:24.33ID:PtoY4rVn0 >>53
昔、某掲示板で質問した人に話の内容から初心者として扱ったらその資格持ってるとのことでびっくりしたことがある。
どんな資格でもそうだけど、そういうもんなんでしょう。
そうしないと受かる奴いなくなっちゃう。
昔、某掲示板で質問した人に話の内容から初心者として扱ったらその資格持ってるとのことでびっくりしたことがある。
どんな資格でもそうだけど、そういうもんなんでしょう。
そうしないと受かる奴いなくなっちゃう。
63デフォルトの名無しさん (ワッチョイ 4623-hx6n)
2017/07/01(土) 04:52:54.03ID:PtoY4rVn0 >>60
そんな問題が実際の案件に出てきた時に最適なコードが書ければ良いでしょ。
それにその程度の話ってググレば出てくるでしょ。
そんなのは何かあったよなと思うことが出来てググレればOK。
それよりも上手いやり方に気付かずにクソコード書く奴は多い。
そんな問題が実際の案件に出てきた時に最適なコードが書ければ良いでしょ。
それにその程度の話ってググレば出てくるでしょ。
そんなのは何かあったよなと思うことが出来てググレればOK。
それよりも上手いやり方に気付かずにクソコード書く奴は多い。
64デフォルトの名無しさん (オッペケ Sr71-UM0m)
2017/07/01(土) 08:01:59.81ID:JGSuKZu6r >>63
自分のクソは棚上げかクソw
自分のクソは棚上げかクソw
65デフォルトの名無しさん (ワッチョイ c123-BlaP)
2017/07/01(土) 08:05:36.28ID:3teBbQmJ0 >>64
お前は試験も仕事も両方苦手みたいだな
お前は試験も仕事も両方苦手みたいだな
66デフォルトの名無しさん (ワッチョイ 4211-zH8r)
2017/07/01(土) 08:23:17.10ID:qXTa/p8N0 >>57
実地試験ってどんなことやるの?
実地試験ってどんなことやるの?
67デフォルトの名無しさん (ワッチョイ 066d-wjSU)
2017/07/01(土) 08:38:38.91ID:QYfDEdV/0 >>66
支店名 状態 月 売上
A支店 3 200
B支店 3 10
C支店 3 500
A支店 4 300
B支店 閉店 4 0
C支店 4 600
4月の売上平均を求めよ(制限時間5分)
って感じ。
D1=(300+0+600)/3
にはたまげた。もちろん関数を使わない人はアウト
B支店を入れるかどうか疑問に思えば合格
支店名 状態 月 売上
A支店 3 200
B支店 3 10
C支店 3 500
A支店 4 300
B支店 閉店 4 0
C支店 4 600
4月の売上平均を求めよ(制限時間5分)
って感じ。
D1=(300+0+600)/3
にはたまげた。もちろん関数を使わない人はアウト
B支店を入れるかどうか疑問に思えば合格
68デフォルトの名無しさん (ワッチョイ 4211-zH8r)
2017/07/01(土) 08:58:05.68ID:qXTa/p8N069デフォルトの名無しさん (ワッチョイ 066d-wjSU)
2017/07/01(土) 08:59:25.55ID:QYfDEdV/0 >>68
あぁすまん、ここvbaスレか。Excelスレと思ってた。忘れてくれ
あぁすまん、ここvbaスレか。Excelスレと思ってた。忘れてくれ
70デフォルトの名無しさん (ワッチョイ b169-nP2k)
2017/07/01(土) 10:42:47.44ID:r7UjQGgF0 エクセルのある部分をリストボックスにしたいのですが、rowsourceで設定すると、間に空白が多くなった時に使いにくいです。
そこで下記のように空白だったら、リストに加えないとしたら、リストに何も出てきません。
どこがおかしいでしょうか? RowPN(i)には既にエクセルの1セルの値が167個入ってます。
i = 1
i1 = 1
Do Until i > 168
On Error Resume Next
If RowPN(i) <> "" Then
UF6ComboBox1.AddItem RowPN(i), i1
i1 = i1 + 1
End If
i = i + 1
Loop
そこで下記のように空白だったら、リストに加えないとしたら、リストに何も出てきません。
どこがおかしいでしょうか? RowPN(i)には既にエクセルの1セルの値が167個入ってます。
i = 1
i1 = 1
Do Until i > 168
On Error Resume Next
If RowPN(i) <> "" Then
UF6ComboBox1.AddItem RowPN(i), i1
i1 = i1 + 1
End If
i = i + 1
Loop
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性には共通点が [Hitzeschleier★]
- テレビ朝日 本社から男性が転落し死亡。関連会社社員か 当たった通行人が左肩軽傷 [阿弥陀ヶ峰★]
- 中国軍機がレーダー照射 小泉防衛大臣の説明に「矛盾している」中国外務省報道官が批判 [♪♪♪★]
- テレビ朝日本社から20~30代の関連会社社員とみられる男性が転落し死亡 六本木けやき坂通りの通行人にはけが人なし [少考さん★]
- 「これいいじゃん!!!」 セブン-イレブンの1620円で買える“1人用クリスマスケーキ”🎂に注目殺到「天才すぎる」 [パンナ・コッタ★]
- 高市早苗首相が天理教系企業に“巨額発注” 総額5000万円 本人は「政治団体の活動に必要な支出」と回答 ★2 [Hitzeschleier★]
- 【実況】博衣こよりのえちえちスーパーダンガンロンパ7🧪
- 【乞食速報】プロクオリティ ビーフカレー 96食 4262円 [268244553]
- 年末のvip芋煮会って何日だっけ?
- 【速報】福島原発でキセノン135が検出されてる模様、再臨界か [668970678]
- 【速報】テレビ朝日本社から20代〜30代の男性が飛び降り自殺して死亡 東京・六本木 [597533159]
- 歴史って「この教科には暴力的な表現が含まれます」とか警告しといた方がいいよな
