Excel VBA 質問スレ Part50 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 7e6d-ffY6)
垢版 |
2017/08/27(日) 12:40:17.57ID:LjjEWylk0
!extend:checked:vvvvv:1000:512

スレ立ての際は一行目に
!extend:checked:vvvvv:1000:512
と入れてスレ立てして下さい

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

※関連スレ
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/

※前スレ
Excel VBA 質問スレ Part49©2ch.net
http://mevius.2ch.net/test/read.cgi/tech/1498410914/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
2017/09/18(月) 22:13:12.43ID:jDUrs+BF0
>>241
さーねぇ。まぁあるかないかならあると思うけど、安易に答えは出さないけど、
どうでもいいマクロならさっさとuserform8消して新しく作り直すほうがいいかもな
2017/09/18(月) 22:25:10.48ID:SpW0zo9eH
>>226
>>229の言う通り

ws1.Activate
ws1.Cells(r, 4).Select
Selection.Resize(1,6).Select
Selection.Copy
ws2.Range("a6:a11").PasteSpecial (xlPasteValues)



ws1.Cells(r, 4).Resize(1,6).Copy
ws2.Range("a6:a11").PasteSpecial xlPasteValues

でOK。
1行ずつ意味を考えて上達して行こう。
ところで、PasteSpecialの後ってカッコ無しでスペースだよね。
2017/09/18(月) 22:34:50.16ID:xepoeGeEa
>>227
インデント統一してる?
俺は4つ(標準)にしてるけど、少しでもズレてる所があると気持ち悪い。
こういうコード貰ったらCtrl + A押して、
Shift + Tabを連続20回ぐらい押してしまう。
んで、全ての行のインデント振り直す。

それから、2つのシート使ってるようだけど自分ならそれぞれを変数に入れるな。
1つはWith使ってるから良いとして、もう1つだけでも変数に入れる。
まあ、自分の場合は基本的にブックから省略しないのでWithや変数に入れないと長くなるんだわ。

それからDo While〜Loopの中だけど、Offsetとiの併用してるのは何で?
全部iで書き直したら?
そうすればStr_ShuNameとかStr_NowRngとか必要無くなるよ。
Str_ShuNameの場所もi使って1つずつ下がって行くんでしょ。
Do Whileの条件もi使って表したらStr_ShuNameへの代入も必要無いよね。

それから、Range("B" & i ).Valueって記述だけど、RangeじゃなくてCells使えば列方向もj使って繰り返しが使えるよね。
まあ、真ん中だけ少し違うから恩恵少ないけど。
2017/09/18(月) 22:45:05.41ID:jDUrs+BF0
>>244
sublimnetextとか使ってみてはどうだろう
コピペするだけであら不思議、自動インデント
https://i.imgur.com/rexlwm0.png

VBEと連携できたら便利なんだけど、残念ながらできない
2017/09/18(月) 23:05:45.45ID:xepoeGeEa
>>245
自動でやるならmougでsmart indenter紹介してたな。
多分連携できるはず。
2017/09/18(月) 23:28:32.94ID:jDUrs+BF0
>>246
うお、こんな便利なもんあったのか
ありがとう早速試してみる
2017/09/18(月) 23:32:57.67ID:2tW0i3mn0
>>221
それはテクニック。質問者は
「セルB4から始めて、右に8列‘’○‘’を順番に書き込んでからB5に下がってまた8列書き込む。それを10行繰り返す」方法を訊いている。
2017/09/19(火) 08:03:42.97ID:S/ELy/wxd
学習指導要領的なアレ
2017/09/19(火) 08:41:07.80ID:TQtJdwms0
>>248
でも二重ループでセルを回すとか、実際にはやらない、というかむしろやっちゃいけないようなこと質問されてもね
2017/09/19(火) 09:07:55.93ID:llsJeX6S0
>>250
やっちゃいけないってなんだよw
foreach in rangeって言いたいんだろうけど、excelは行列の削除があるから二重ループでいいだろう
セルじゃなければforeachでいいけどな
2017/09/19(火) 11:43:23.74ID:3hwVeuBP0
列数 = 8
行数 = 10
Range("B4").Resize(列数, 行数).Value = "○"
2017/09/19(火) 12:11:26.47ID:JjVbyw/1a
>>248
初心者は設計に問題がある場合が多いわけで。
真面目に回答してもすったもんだして結局>>221が採用されることも多い。
質問の仕方もダメダメな場合が多いから、回答も段々きつくなる。

>>251
すべきじゃ無いのはむしろセル回す方だと思うが。
配列からの一括挿入にすべきだろ。
254デフォルトの名無しさん (オッペケ Sr4d-ZzG1)
垢版 |
2017/09/19(火) 12:22:40.32ID:hROBZ5mLr
問題もクソもこういう場合質問者はループを回したいなど微塵も思ってない
無知ゆえに質問の仕方がぎこちないだけだ
教えたがりならそれくらい察しろよ
2017/09/19(火) 12:37:00.77ID:k/2scTwdd
二重ループってのもある種のテクニックだから、そのやり方を訊いているのかも知れん。for nextでカウンタiとjを使って...とか。
そうでないなら、例えば、同様の効果を得る処理時間の短い方法を知りたいなどと訊くべし。
2017/09/19(火) 12:58:00.95ID:JjVbyw/1a
>>254
それを察したから>>221を書いたんだろ。
したら>>248の突っ込みが入って今に至ると。

それと初心者の場合、無知なんじゃ無くて自分で色々試してみるということをしないが故ということも多い。
動く結果を欲しがり、動く仕組みを自分のものにしない。

質問でRange("K15:O20")などと出てくるだけでガッカリ。
その範囲は今問題になってるお前の表そのものだろと。
結局貰ったコードそのままコピペして使うんだろうなと想像ついちまう。
2017/09/19(火) 13:16:12.83ID:GpDcdeuu0
「何をどうすればいいのか見当がつかない」というのは根本を理解していないが故だしな。

それにVBAはだいたいネット検索すれば解決策が載ってるんで(凡例が少ないという事はあるけど)、
自分で解決してから「こういう方法以外にどのような解法があるか」と聞いてくるのが一番正常なのかもしれないね。
2017/09/19(火) 14:10:03.77ID:S/ELy/wxd
初心者がいるってことは新規参入者がいるってことなので、考えようによってはありがたいことだ。
259デフォルトの名無しさん (ワッチョイ 398b-MDSF)
垢版 |
2017/09/19(火) 21:47:07.38ID:r8s5qxxU0
つべこべ文句言ってねえでお前らなんかに質問してくれるだけ有り難いと思えよ
260デフォルトの名無しさん (スプッッ Sdf3-uHQa)
垢版 |
2017/09/19(火) 23:27:39.48ID:44Sr5E9Ld
ここはVBAの作成依頼もOKですか?
2017/09/19(火) 23:28:15.16ID:llsJeX6S0
>>260
内容による
とりあえず内容書いてみればok
262デフォルトの名無しさん (スプッッ Sdf3-uHQa)
垢版 |
2017/09/19(火) 23:38:49.19ID:44Sr5E9Ld
>>261
B2〜B40までのセルをダブルクリックすると検索ボックスが出てきてE2〜E25までのデータを検索出来るようにしたいです(実際のデータは1500個くらいありますが)
検索ボックスにaと入力するとaを含むデータがリスト化されて出てきて、そのリストをダブルクリックするとBの列にそのデータが貼り付けされる
っていうのを作りたいです
http://imgur.com/gMJqp1I.jpg
2017/09/19(火) 23:46:09.19ID:awnco+f70
なんで(R1C1形式じゃなくて)A1形式なんだろうなぁ。あれ(A1形式)って感覚的に分かるの?
264デフォルトの名無しさん (ワッチョイ 398b-ZzG1)
垢版 |
2017/09/19(火) 23:54:26.79ID:r8s5qxxU0
バカはいつも突然やってくる
2017/09/19(火) 23:54:28.98ID:llsJeX6S0
>>262
とりあえず写真じゃなくスクリーンショットで頼む
モアレになって鬱陶しい

要するにE列を文字列で絞り込んでB列に貼り付けたいってことね

で、考えた
・openイベントでuseformをExcelとは別に動くようにshowする。要するに常時表示させる検索ウィンドウ。モーダルか、モーダレスか忘れた。
・テキストボックスに入力するとB列が次々と変化
1500ぐらいならリアルタイムで変化させても余裕だろう

誰も作って無かったら明日の夜作るよ
2017/09/19(火) 23:55:49.42ID:llsJeX6S0
>>263
分からん。全然分からん。
ただ既存のシートにマクロでclearcontentsする時はA1形式にする事はよくある
2017/09/19(火) 23:56:24.26ID:GpDcdeuu0
>>262
GUIいじりはエクセルVBAの守備範囲外だからやめたほうがいい。

リボンを改造して専用のボタンを用意する方法があるので、
そこからフォームを呼び出してツールであるかのように見せるのが限界。
268デフォルトの名無しさん (スプッッ Sdf3-uHQa)
垢版 |
2017/09/20(水) 00:01:43.09ID:+p3KI42td
>>265
ありがとうございます
スクショは今は撮れませんが明日できれば撮ります
2017/09/20(水) 00:23:48.32ID:mkPuPLWs0
デジカメでモニターを撮影するのだって広義のスクショなんだけど
むしろ初期はカメラをモニターの前に置くしか方法がない場合が大多数だった
2017/09/20(水) 00:33:24.59ID:rbLHucI/0
変な作り話しなくても、会社とか学校のPCとかで内部データ持ち出せない場合は、
そういう風にするしかないって擁護すればいいんじゃないの。(その場合でも画面の写真撮るのは拙いけど)
2017/09/20(水) 08:10:47.54ID:pHDT776b0
>>262
出来たわ
テキストボックスに入力するとB列で絞込表示
1500件ぐらいなら多分軽い
https://www.dotup.org/uploda/www.dotup.org1370604.zip.html
2017/09/20(水) 19:48:21.95ID:WlNCuA1ya
>>262
B列のダブルクリックとか設計がよろしくないね。
検索ボックスってのはフォームと推測。
B列への入力ってのは検索したリストの中から選択したものを入力ってことと推測。

以下のようなものを作成してみた。
・[アドイン]リボンの[E列データ作成]を押すとE列に10万行のランダムデータ作成
・[アドイン]リボンの[E列から検索]を押すと検索用フォームを表示
・検索用フォームでテキストボックスに入力してEnterキー押下するとリストボックスに検索結果表示
・リストボックスでダブルクリックするとB列に選択されたセルにダブルクリックした文字列を入力

https://pastebin.com/ye8PZecY
273デフォルトの名無しさん (スプッッ Sdf3-wsdZ)
垢版 |
2017/09/20(水) 20:37:33.76ID:JB1iCPlvd
>>265,267,271,272
みなさんありがとうございました
色々コピペですがおかげで何とか出来ました
274デフォルトの名無しさん (ワッチョイ 398b-MDSF)
垢版 |
2017/09/20(水) 21:25:43.55ID:6Jeed1fg0
>>272
設計がよろしくないねwwww

しゃしゃんな無能w
おめーの設計()の方がよっぽどよろしくないわw

煽りじゃなくてマジもんのクソだっつーのそのUI
しかもコードは小学生の初めてのプログラミングレベルだぞお前
2017/09/20(水) 21:37:54.27ID:sWNWre39x
>>274
スゲー承認しました
276デフォルトの名無しさん (スプッッ Sdf3-wsdZ)
垢版 |
2017/09/20(水) 22:21:19.53ID:JB1iCPlvd
ちなみにこんなのが出来ました

B5をダブルクリックすると画像のように検索フォームが出て来る
フォームにabと入力してエンター押すとabを含んだリストが出て来る
http://imgur.com/qzmxOJp.jpg

リストのabdをダブルクリックするとB5にabdが貼り付けされて検索フォームが閉じる
http://imgur.com/jVKEH0a.jpg

↓を参考にしてみたけどRowSourceに値をセットするっていうのがよくわからなかったから空欄にした
http://infith.com/system/excel/vba_form_find/

VBAというかプログラミング初めてなので勉強になりました
みなさまありがとう
2017/09/20(水) 22:31:46.25ID:pHDT776b0
>>276
乙。よー頑張った
こういう報告は嬉しいもんやね
2017/09/20(水) 23:02:00.90ID:1NkuNAa7a
>>274
初心者の人?
今回の質問自体が簡単な部類だけど、それでも俺の書いたコードが非難されるようなものかどうかも区別つかないの?

批判にも具体的な指摘が全く無いし。
2017/09/20(水) 23:22:24.26ID:rbLHucI/0
>>278
以前から居る病気の人だから構わないであげて
VBAのコードが読めないのに何故かこのスレに張り付いてんのよ
2017/09/20(水) 23:30:23.54ID:1NkuNAa7a
>>276
そこのサイトのコードだと毎回下記手順になるんだけどそれでOK?

セルダブルクリック
テキストボックス入力
リストボックスダブルクリック
以下繰り返し

間違って別のセルダブルクリックしたらフォーム閉じなきゃならんし、
連続して入力していくならフォームはモードレスにしてリストボックスのダブルクリックで閉じないようにした方が良い。

セルダブルクリックの中の
frm_Kamoku.Show

frm_Kamoku.Show vbModeless
に変更して
リストボックスダブルクリックの中の
Unload Me
をコメントアウトするだけ。

フォーム表示中にリストボックスダブルクリックで入力するセルが選択できるようになる。
フォームの終了はxボタンで。
281デフォルトの名無しさん (ワッチョイ 398b-MDSF)
垢版 |
2017/09/20(水) 23:31:16.68ID:6Jeed1fg0
>>278
初心者の人?wwwwwww

いやw初心者はお前だからw
何をどう勘違いしたらこうもマヌケな発言が出来るのかねw

そもそもお前のクズコードなんぞ批評の土台にすら登っとらんわ
のぼせ上がんのもいい加減にしろクズ
2017/09/21(木) 00:04:37.10ID:OcnLMsdka
>>281
例えばね、>>276のリンク先の人のコ−ドを見ればすぐに、そこそこ書けると分かるのよ。
書ける人ってのはコード見ればその人の力量がすぐ分かるもんなんだ。

>>276のリンク先の人がそこそこ以上かどうかは扱っている内容が初心者向けだから分からないけど一定以上のレベルにあることは分かる。

残念だが、君はとっても恥ずかしい人だ。
というかね、煽るだけで具体的な内容が無い。
どこが悪いか全く言及出来てないのが笑える。
2017/09/21(木) 00:07:50.25ID:GdqtYoiF0
こんな華やかなコメントアウトって使う?
'*********:*********:*********:
' このプログラムはaでbです
'*********:*********:*********:
2017/09/21(木) 00:11:10.32ID:vjoJajys0
>>276
自分がよく使う、なんちゃってインクリメンタルサーチコードを差し上げよう。
一文字打つごとに検索結果が絞り込まれるよ。
検索ボックスのChangeイベントにコピペしてオブジェクト名は書き換えて試してみてね。
数百件ならラグもないはず。

Private Sub TextBox1_Change()

Dim ce As Range
Dim ws As Worksheet
Set ws = Worksheets("対象シート")

If TextBox1.Text = "" Then Exit Sub

With ListBox1 ’検索結果を表示するリストボックス

.Clear

For Each ce In ws.Range("検索するセル範囲")
If StrConv(UCase(ce.Text), vbNarrow) Like "*" & StrConv(UCase(TextBox1.Text), vbNarrow) & "*" Then
.AddItem ce.Text
End If
Next

End With
End Sub
2017/09/21(木) 00:26:32.97ID:OcnLMsdka
>>283
???
使う人もいるでしょ。
俺も使う時あるし。
こんなのも使うな

' /////////////////////////////////////////////////////////////////////////////////////
' //#名称 Auto_Open
' //
' //#概要 ブックを開いたときの処理(Excelの特殊関数)
' //
' //#引数 なし
' //
' //#戻値 なし
' //
' //#解説
' //
' //#履歴 2017/09/21
' // Coded by Hogeta Hogeo
' //
' /////////////////////////////////////////////////////////////////////////////////////
2017/09/21(木) 00:34:34.85ID:OcnLMsdka
>>276
>>280に書いた内容だけど、よく考えたらB列以外にも入力されちまうわ。
元々の処理ではフォーム表示で入力セル固定だけど>>280では固定じゃ無くすので。

リストボックスダブルクリックの処理でアクティブセルに入力するようになってると思うけど、>>280を試すならアクティブセルの列がBの時だけ入力するようにしないといかんね。
287デフォルトの名無しさん (ワッチョイ af8b-lQLN)
垢版 |
2017/09/21(木) 06:16:04.60ID:dREmj5Qv0
>>282
朝から笑わせてもらったw
なぜお前らはそこまで勘違い出来るのか?
勘違いこそが教えたがりクンになれる素養なのか?
大体分かってたけどw

まあお前らが勝手に勘違いしてるだけならいいが
他人に嘘を教えようとしたら盛大に告発させてもらうわw
2017/09/21(木) 07:36:17.84ID:JiFdzG0np
ここまで具体的な指摘なし
2017/09/21(木) 07:48:27.04ID:GdqtYoiF0
>>285
あぁ、そういう風に使うのか、ありがとう
2017/09/21(木) 08:27:55.66ID:Fp/Plhwox
>>281
スゲー承認しました
2017/09/21(木) 08:28:32.33ID:Fp/Plhwox
>>287
スゲー承認しました
2017/09/21(木) 17:33:45.86ID:w3PiJp4aa
>>287
どこが悪いのか指摘出来ないというのが苦しいね。
批判出来るということは悪い所がわかるということの筈なんだけどな。
悪い所が分かる程の能力は無いけど、取りあえず煽ってみましたってところかな。

ところで君は自分の書いたコード晒したこと有るのかね?
君が俺より出来るなら>>204に答えてあげなよ。
>>204の質問って、ここでは高度な内容になる筈だからさ。

ま、無理だろうけど。
293デフォルトの名無しさん (スプッッ Sd4a-Ir9i)
垢版 |
2017/09/21(木) 17:40:03.03ID:3c3Fmrq2d
>>276です
皆さんありがとうございます
質問なんですが
http://infith.com/system/excel/vba_form_find/
によると
RowSourceに"科目マスタ!A2:A" & wLastGyouを入れないといけなのでしょうか?
プロパティのRowSourceに値を入れようとしてもエラーが出ます
2017/09/21(木) 18:42:41.24ID:w3PiJp4aa
>>293
そもそも、どうしてRowSourceにこだわってんの?
君のやりたいことでは必要無いと思ってたんだが。

RowSourceってのは融通が効かないから自分は基本使わないんだが、エラーになってるとしたらRowSourceとAddItemが共存出来ると思ってるとかかな。
RowSourceはシートの指定範囲のデータをリストにするもので、そこに追加やそこから削除は出来ない。
指定範囲のデータだけでリストは完結することになる。
そこでそのリンク先でも絞り込みの前に.RowSource=""を入れてる。
2017/09/21(木) 18:48:44.67ID:w3PiJp4aa
>>293
RowSourceプロパティに事前に値入れてもエラーにはならんよ。
シート名!A1:A10
とか入れてみなよ。
変数は使えないのは分かるよね。
動く前なんだし。
296デフォルトの名無しさん (ワッチョイ af8b-lQLN)
垢版 |
2017/09/21(木) 22:35:38.87ID:dREmj5Qv0
>>292
批判wwwwww

批評の土台にすら登ってないと何度言えばw
自分の無知無能に蓋をして見たいものしか見てないんだよお前らは
勇気を出して一度自分の無能と真剣に向きあってみ?

頭が悪くても少しは世界が変わるから…何も変わらんかもしれんけどなw
2017/09/21(木) 22:38:43.69ID:JiFdzG0np
依然として具体的な指摘なし
2017/09/21(木) 23:08:08.58ID:u5EL98RNa
>>296
何だ、何も言えるだけの技術的要素を持ってない人か。
具体的な指摘も一切出来ないし、わざわざ>>204の話を振ってやっても何をどうすれば良いかも思い付かないんだろう。

ちなみに俺は3〜4パターンは思い付いてる。
例えば、ビットマップ描画じゃなくても透明ウィンドウに円形リージョン使った輪っかウィンドウ表示するとか。
リージョン使わなくても透明ウィンドウだけで同じようなの作るとか。

ま、何言ってるか分からないだろうけど。
299デフォルトの名無しさん (ワッチョイ af8b-lQLN)
垢版 |
2017/09/21(木) 23:45:26.82ID:dREmj5Qv0
>>298
技術的要素wwwwwww

とことん笑わせてくれるなお前w
相手にされてないのに必死にアピールして虚しくならないのかバカという人種はw
これがお前らの大好きな承認欲求ってやつだろw

他人に認められたかったらまず自分の無知無能を自覚しろよ
話はそこからだ、そうすれば少しは周りも認めてくれるんじゃね?

…あ、バカが居る…てなw
2017/09/21(木) 23:55:14.64ID:u5EL98RNa
>>299
小学生でもお前のレベルは低いと言うことは出来る。
本当に自分の方がレベルが上かを示さなくて良いならな。

それがお前だ。
技術的要素無しであの葡萄は酸っぱいと言ってるキツネのようだ。
2017/09/21(木) 23:57:08.45ID:u5EL98RNa
本当に、何言ってるか理解出来ないから、振った話には一切言及出来ない。
こういう所でレベルが透けるんだよなあ。
302デフォルトの名無しさん (ワッチョイ af8b-bXGz)
垢版 |
2017/09/22(金) 00:05:31.90ID:XNPiuLNV0
もうなりふり構ってられなくなったなw
いいよその調子w
2017/09/22(金) 01:17:48.87ID:TDU45J/zx
>>299
なんで相手してるんだ?
2017/09/22(金) 02:57:45.48ID:zgKhpRaR0
久しぶりにこのスレ戻ってきたけどまた随分荒れてるね。

まぁどんな手法で作った方が良いかなんてそのときのシュチュエーションで決まるものだから
議論してもあまり意味がないと思うよ。

そんなことより変更に対して厳しく、追加に対しては寛容になるような作りにするような
もっと基本的なことを念頭におくようにした方がより効率的に改修出来たりするよ。
305デフォルトの名無しさん (ワッチョイ af8b-lQLN)
垢版 |
2017/09/22(金) 07:49:01.52ID:XNPiuLNV0
また教えたがりが一匹ふえたw
2017/09/22(金) 08:36:54.40ID:q9/2ZYK50
質問スレに質問と回答以外の事を書き込むなよな
2017/09/22(金) 10:26:04.56ID:BmGv97NWd
まず>>306が質問でも回答でもない時点で何を言っているんだーおまえわー
自分だけは特別だと思ってる自意識過剰かー
単なるバカなのかー
2017/09/22(金) 10:44:51.56ID:FdbOU1iGr
VBAに高階関数ってないんすかね?
2017/09/22(金) 11:45:21.15ID:JBjlrBKTd
>>308
条件に応じて関数を選択してそれのAddressOf値を返すことはできるから
強いて言えばあると言えばあるね
2017/09/23(土) 05:57:25.45ID:3crN9LRXa
>>306
ぁあ?
だったら昔みたいにガッチガチにルールで縛りつけたスレ立ててそこで1人でやれやボケ
2017/09/23(土) 09:39:55.56ID:hX9NlXapa
ルールで縛らないで良いなら質問と回答以外書き込むなと書くこともアリだろ。
アホなこと書いても良いが、その分そいつが批判されるのも仕方ないということ。

アホな初心者がかつて批判されたことを根にもって相手の力量も分からずに噛みついてるんだから批判されても仕方ない。
2017/09/23(土) 09:50:48.00ID:3ppsxCRMr
>>309
すんません、表現が良くなかったです。
mapとかfoldとかfilterとか、それらに付随してラムダ式とかです。
調べたけどなさそうですね。MSさん、用意して欲しいな、、
2017/09/23(土) 11:22:54.85ID:ck0qiPja0
VBAにラムダ式を望むなよ
2017/09/23(土) 12:43:51.76ID:s+vr+Saza
>>311
VBAみたいに片手間でやるような言語のスレで
初心者って言われてもなぁ
2017/09/23(土) 12:55:31.84ID:dWsmcDp10
>>312
filterってなに?
2017/09/23(土) 12:58:26.11ID:pHSma+nnM
2ch初心者か?
肩の力抜けよ
2017/09/23(土) 13:44:03.04ID:dWsmcDp10
>>312

これ見て理解した
http://www.cse.unsw.edu.au/~en1000/haskell/hof.html
2017/09/23(土) 13:49:15.21ID:HcxyMvzb0
>>313
HaskellでNLPやってて、小回り利くなと感じた。エクセルの事務作業と相性いい。

>315
エクセルのフィルターとまさに同じ、
例えば[10,2,34,401]から偶数を抜きたければ、
filter (\x -> mod x 2 == 0) [10,2,34,401]などとやる。
桁が三桁のを抜くなら、
filter (\x -> length x == 3) [10,2,34,401]とか。
2017/09/23(土) 13:50:46.59ID:HcxyMvzb0
>>317
まさにそれですね。
2017/09/23(土) 14:02:25.24ID:dWsmcDp10
Haskellは三日坊主で終わったとはいえヤバい
2017/09/23(土) 14:09:02.53ID:BetVnWHy0
EXCELはシートにSQLが使えるから場合によってはそっちの方が使えるのでは。
LINQやラムダ式でガッツリやりたいのであれば
もうEXCELの範疇を超えているので
.netでentityFreamworkとか使ってやった方がいいと思うよ。
2017/09/23(土) 15:07:07.52ID:HcxyMvzb0
>>321
ありがとう、調べてみます。
2017/09/23(土) 17:39:07.55ID:6qmI5T+w0
do while not eofと do until eofは同じですか?
2017/09/23(土) 18:26:20.13ID:hvHU1vjm0
>>323
同じじゃないと思える根拠を書いてくれないか?doの後じゃなく
Loopの後に条件を書いたらそりゃ違うだろうけど。
2017/09/23(土) 18:38:13.30ID:6qmI5T+w0
>>324
ありがとうございます
同じことでも言い換えられるんですね
2017/09/23(土) 19:18:36.34ID:paUCbsLX0
>>324-325
特定の状況では結果が異なるから完全に同一ではないけどな

Sub test()
Dim eof As Variant
eof = Null
Do Until eof
MsgBox "Untilを実行した"
Exit Do
Loop
Do While Not eof
MsgBox "While実行した"
Exit Do
Loop
End Sub

eofがTrue/Falseしかないなら同じ動作だけど、そのどっちでもない場合は同じ動作するとは限らん
Null扱うなら覚えておかないとはまるぞ
2017/09/23(土) 19:31:29.38ID:ljq3IKQ50
Notはビット反転だから真偽値以外だと挙動が変わるわな。
Nullは色んな判定を挟む前にFalseを返す仕組みのはずだから、また問題が違うような気もするけど。
2017/09/23(土) 19:56:35.16ID:paUCbsLX0
>>327
VBAには暗黙の変換ってのがあってな
>Notはビット反転
数値型に対してはな
真偽値にたいしてビット演算は規定されていないはず

>Nullは色んな判定を挟む前にFalseを返す
Nullが常にFalseを返すなら、>>326みたいな事にはならん
Nullには伝播性ってのがあってな、基本的にNullを含む式はNullを返す
返してるのはあくまでNullであって、TrueでもFalseでもない

Do Loopのヘルプにわざわざ
>引数 condition の値が Null 値の場合、引数 condition は偽 (False) であるとみなされます。
ってかいてあるだろ
2017/09/23(土) 20:57:28.95ID:hvHU1vjm0
>引数 condition は偽 (False) であるとみなされます。
自分で答えを書いているように思うが。
2017/09/23(土) 21:10:26.95ID:ljq3IKQ50
俺が「Falseを返す」と表現したのが悪かったな。
「Nullが含まれる式は必ずFalseとして判定される」と書かなきゃいけなかった。
2017/09/23(土) 21:13:02.41ID:dWsmcDp10
関係ないけど Not 1 が False 扱いにならないのは地味に不便だ
2017/09/23(土) 22:09:48.51ID:paUCbsLX0
>>330
それが分かってれば問題はないんだけど、分かってても勘違いしたりするからなぁ
Nullの扱いが直感的じゃないってのが最大の敵

>>331
VBAのTrueは-1だからな
Not -1とかNot CBool(1)とかならFalse扱いだし
2017/09/23(土) 22:56:39.62ID:7cmO2hJI0
vbaとExcelで数値とbooleanの変換が変わるのは怖い
2017/09/24(日) 00:06:38.99ID:CZiBIXmW0
きっと〜、あなたは もどってくるだろぅをー
335デフォルトの名無しさん (ワッチョイ af8b-bXGz)
垢版 |
2017/09/24(日) 02:19:39.33ID:3BjqQEbI0
ハイ戻ってきましたぁ!
また調子こいた教えたがりがしゃしゃってんのか?
バカはどいつだ?
2017/09/24(日) 03:07:22.68ID:2VO5tOtwe
∧_∧
( ´・ω・)
( つ旦O
と_)_)
2017/09/24(日) 08:32:58.01ID:wIEwKcgM0
>>331
Not 1と書くシーンがわからんが、素直に(?)Not TrueとかFalse とか書けば?
2017/09/24(日) 08:50:08.02ID:y7FzpsGf0
ドイツの技術は世界一ィィィ
2017/09/24(日) 08:51:55.94ID:sE41CGP30
Not Trueは新しいな
2017/09/24(日) 08:53:02.43ID:sE41CGP30
ツール→参照設定で全てを参照する方法はありますか?
2017/09/24(日) 09:43:55.42ID:SDtHFGLja
>>314
ここで言われてる初心者ってのは殆どの場合、他の言語も初心者ってことだぞ。
技術的に初心者だから初心者と呼ばれてる訳じゃない。
自分の画面を見ることが出来ない相手にも伝わるように書くとか、条件を小出しにするとか、相手をロボットか何かと勘違いしてるような初心者以前の問題が有るから否定的な意味で初心者と言われてる。

それにVBAを片手間とか簡単に言うのもどうなんかね?
あまり使ったこと無い奴ほどそういうこと言ってるような気がするね。

内容が何ーつ無くて罵倒しか出来ない初心者君の真価が問われてる。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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