!extend:checked:vvvvv:1000:512
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part62
https://mevius.5ch.net/test/read.cgi/tech/1561303297/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
Excel VBA 質問スレ Part63
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん (ワッチョイ d3d0-EPXH)
2019/09/16(月) 19:34:59.04ID:emfTAhXr02デフォルトの名無しさん (ワッチョイ 9f01-hFMq)
2019/09/16(月) 19:37:44.33ID:oeAiWNxe0 ぽこちん
3デフォルトの名無しさん (ワッチョイ 7f01-bRiQ)
2019/09/16(月) 20:59:24.42ID:dQXELjkB0 ちんぽこ
4デフォルトの名無しさん (ワッチョイ fff7-uS//)
2019/09/16(月) 21:35:06.62ID:umLXld9Q0 おつちん
5デフォルトの名無しさん (ワッチョイ 7f79-j7/x)
2019/09/16(月) 21:37:35.26ID:+LXKkUCe0 糞レスで埋めるなら前スレのCSVファイルをQueryTablesで読むサンプル残しとく超参考になった
967 デフォルトの名無しさん (ワッチョイ 1fce-Nl8y) sage ▼ New! 2019/09/13(金) 00:48:49.27 ID:VS8vqVEc0 [1回目]
文字列として読み込めば0は消えない
あとLineInputよりクエリのがずっと速い
サンプル
Sub CSVread()
With Worksheets("Sheet1") '読み込むシート
With .QueryTables.Add(Connection:="TEXT;C:\tmp\test.csv", Destination:=.Range("A1")) 'ファイル名とセル位置
.TextFilePlatform = 932 '文字コード指定
.TextFileCommaDelimiter = True 'カンマ区切り指定
.RefreshStyle = xlOverwriteCells 'セルに上書き
.TextFileColumnDataTypes = Array(xlTextFormat, xlTextFormat, xlTextFormat) '各列を文字列に指定
.Refresh 'シートに読み込んで表示
.Delete 'クエリを切断
End With
End With
End Sub
967 デフォルトの名無しさん (ワッチョイ 1fce-Nl8y) sage ▼ New! 2019/09/13(金) 00:48:49.27 ID:VS8vqVEc0 [1回目]
文字列として読み込めば0は消えない
あとLineInputよりクエリのがずっと速い
サンプル
Sub CSVread()
With Worksheets("Sheet1") '読み込むシート
With .QueryTables.Add(Connection:="TEXT;C:\tmp\test.csv", Destination:=.Range("A1")) 'ファイル名とセル位置
.TextFilePlatform = 932 '文字コード指定
.TextFileCommaDelimiter = True 'カンマ区切り指定
.RefreshStyle = xlOverwriteCells 'セルに上書き
.TextFileColumnDataTypes = Array(xlTextFormat, xlTextFormat, xlTextFormat) '各列を文字列に指定
.Refresh 'シートに読み込んで表示
.Delete 'クエリを切断
End With
End With
End Sub
6デフォルトの名無しさん (ワッチョイ 9f01-hFMq)
2019/09/16(月) 21:50:00.95ID:oeAiWNxe0 ぽこちん
7デフォルトの名無しさん (ワッチョイ 9f8e-J3NS)
2019/09/16(月) 22:04:26.30ID:mBMfeEcT0 全部丸投げの教えてクレクレは死ね
8デフォルトの名無しさん (アークセー Sx73-Pq6P)
2019/09/17(火) 00:12:51.48ID:QL/1GsWjx LongLong型に定数値として4,294,967,296を与えておきたいのですがLongの範囲を超えているせいか、必ず後ろに#が付いてしまいます
用途としては強引にunsigned Long的に使う為のオフセットなのですが#を付けない方法はありますか?
用途としては強引にunsigned Long的に使う為のオフセットなのですが#を付けない方法はありますか?
9デフォルトの名無しさん (ワッチョイ 7f59-yzII)
2019/09/17(火) 00:26:07.74ID:dEY9k2Om0 Verylong型
10デフォルトの名無しさん (ワッチョイ 7f01-bRiQ)
2019/09/17(火) 01:14:04.05ID:chWRxzLY0 ちんぽこ
11デフォルトの名無しさん (ワッチョイ 9f01-NvLc)
2019/09/17(火) 05:14:20.51ID:x3oFyaLA0 >>8
式は書けないんだったっけ…
式は書けないんだったっけ…
12デフォルトの名無しさん (ワッチョイ 7fb1-VJtK)
2019/09/17(火) 12:34:56.30ID:WreyM4md0 LongPtr
13デフォルトの名無しさん (ワッチョイ 9f01-KBBU)
2019/09/17(火) 19:25:37.80ID:gAW2iwiH0 前スレの最後でセルに色をつけるコードを作って頂いた者です。職場で試してみましたが思い描いた通りに動いてくれました!これを機に自分で作れるように勉強したいと思います。作って下さった方、本当にありがとうございました…!
14デフォルトの名無しさん (ワッチョイ 9f01-hFMq)
2019/09/17(火) 19:44:50.07ID:1jOFcYgS0 ぽこちん
15デフォルトの名無しさん (アークセー Sx73-CIVR)
2019/09/17(火) 22:00:10.80ID:g2VoYh6px スレチなのは分かってるけど詳しい人がここにしかいなさそうだから、もし知っていたら教えてほしい
ブックに保存されたクエリをOLAP等で使い回すためにODCファイルとしてエクスポートしたいんだが、「既存の接続」コマンドからクエリのプロパティを開いても「接続のエクスポート」のボタンが無効になっていてうまくエクスポート出来ない
どうしたらうまくエクスポートできるのか知りたい
ブックに保存されたクエリをOLAP等で使い回すためにODCファイルとしてエクスポートしたいんだが、「既存の接続」コマンドからクエリのプロパティを開いても「接続のエクスポート」のボタンが無効になっていてうまくエクスポート出来ない
どうしたらうまくエクスポートできるのか知りたい
16デフォルトの名無しさん (ワッチョイ 9f01-hFMq)
2019/09/18(水) 00:53:52.38ID:2k/sPvaQ0 珍ぽこりん
17デフォルトの名無しさん (ワッチョイ 9f64-+dKN)
2019/09/18(水) 02:08:49.51ID:IoDIi0WV0 すみません。
エラーが分からず・・・教えてください。
下記コードで、”型が一致しません”というエラーが出ています。
Dim Ringi1 As Worksheet
ThisWorkbook.Activate
Set Ringi1 = Workbooks(Range("B6")).Worksheet("Sheet1") ←エラー
ThisworkbookのB6には”テストファイル.xlsx”が入っています。
よろしくお願いします。
エラーが分からず・・・教えてください。
下記コードで、”型が一致しません”というエラーが出ています。
Dim Ringi1 As Worksheet
ThisWorkbook.Activate
Set Ringi1 = Workbooks(Range("B6")).Worksheet("Sheet1") ←エラー
ThisworkbookのB6には”テストファイル.xlsx”が入っています。
よろしくお願いします。
18デフォルトの名無しさん (アークセー Sx73-CIVR)
2019/09/18(水) 02:37:53.20ID:6F01cvXOx >>17
Worksheet(Range("B6"))じゃなくてWorksheets(Range("B6").Value)でしょう
あとRange("B6")はどのシートのB6セルなのかな?
この書き方だとThisWorkbookがActivateされたときにアクティブになってるシートのB6セルが参照されてしまうので、ちゃんとシートを指定して書いたらどうかな
例えばThisWorkbookの一番目のシートのB6セルにファイル名が書かれている前提ならこうなる
Dim Ringi1 As Worksheet
ThisWorkbook.Activate
Set Ringi1 = Application.Workbooks(ThisWorkbook.Worksheets(1).Range("B6").Value).Worksheets("Sheet1")
Worksheet(Range("B6"))じゃなくてWorksheets(Range("B6").Value)でしょう
あとRange("B6")はどのシートのB6セルなのかな?
この書き方だとThisWorkbookがActivateされたときにアクティブになってるシートのB6セルが参照されてしまうので、ちゃんとシートを指定して書いたらどうかな
例えばThisWorkbookの一番目のシートのB6セルにファイル名が書かれている前提ならこうなる
Dim Ringi1 As Worksheet
ThisWorkbook.Activate
Set Ringi1 = Application.Workbooks(ThisWorkbook.Worksheets(1).Range("B6").Value).Worksheets("Sheet1")
19デフォルトの名無しさん (ワッチョイ 9f01-hFMq)
2019/09/18(水) 06:35:56.16ID:2k/sPvaQ0 ポコポコてぃんてぃむ
20デフォルトの名無しさん (ドコグロ MM23-hFMq)
2019/09/18(水) 07:18:06.31ID:Sjvl4q9oM >>8
つけないのは無理だったと思う
今スマホだから試せないけど # が嫌というだけなら ^ ではどうかな?
https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/longlong-data-type
つけないのは無理だったと思う
今スマホだから試せないけど # が嫌というだけなら ^ ではどうかな?
https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/longlong-data-type
21デフォルトの名無しさん (ワッチョイ 9f01-hFMq)
2019/09/18(水) 19:03:21.51ID:2k/sPvaQ0 てぃむてぃむ
22デフォルトの名無しさん (ササクッテロル Sp73-tYbx)
2019/09/18(水) 22:18:32.08ID:TxLlA7PYp ブックAのシート1〜iまでのA1セルの数字を合計した数字をブックBのA1セルに転記したいのですが、どう書けばいいでしょうか?
23デフォルトの名無しさん (ワッチョイ 1f7c-0qT7)
2019/09/18(水) 22:31:17.98ID:ZRtblFe80 >>22
マルチポストはやめよう
マルチポストはやめよう
24デフォルトの名無しさん (ワッチョイ 7e0d-eime)
2019/09/19(木) 00:39:56.20ID:oPZRSehu0 VBAのエディタに未だに慣れない・・・visual studioみたいな至れり尽くせりな開発環境があればなぁ
25デフォルトの名無しさん (ワッチョイ 0d7c-ix+T)
2019/09/19(木) 00:47:56.32ID:ARAzw0xg0 >>24
アドオン入れるなり作るなりするとマシになる
アドオン入れるなり作るなりするとマシになる
2617 (ワッチョイ 2964-9GzD)
2019/09/19(木) 01:19:41.82ID:vxcA2ILs027デフォルトの名無しさん (ワッチョイ 7901-hoFX)
2019/09/19(木) 05:46:15.64ID:0eG7NBUp0 あいうえお
28デフォルトの名無しさん (ササクッテロル Sp51-YxcC)
2019/09/19(木) 07:26:47.06ID:F8eVIa9Rp29デフォルトの名無しさん (スフッ Sd22-bArz)
2019/09/19(木) 08:12:52.96ID:wmMzcbeOd >>25
オススメ教えて
オススメ教えて
30デフォルトの名無しさん (ワッチョイ 7901-hoFX)
2019/09/19(木) 08:47:06.93ID:0eG7NBUp0 かきくけこ
31デフォルトの名無しさん (ブーイモ MMf6-zDIv)
2019/09/19(木) 12:51:43.71ID:sRgRNGS8M なにぬねの
32デフォルトの名無しさん (スフッ Sd22-k+x8)
2019/09/19(木) 14:11:18.92ID:I3ATuKNad >>22
ブックAのシートでループ
ブックAのシートでループ
33デフォルトの名無しさん (ワッチョイ 298e-l2za)
2019/09/19(木) 14:27:24.46ID:nfvzk0j90 >>28
死ね、馬鹿
死ね、馬鹿
34デフォルトの名無しさん (ササクッテロル Sp51-YxcC)
2019/09/19(木) 14:54:49.69ID:F8eVIa9Rp >>33
うるせえウンコマンクソして寝ろ
うるせえウンコマンクソして寝ろ
35デフォルトの名無しさん (ワッチョイ 298e-l2za)
2019/09/19(木) 15:37:32.90ID:nfvzk0j90 馬鹿の本性なんてこんなもん
36デフォルトの名無しさん (ワッチョイ 0d7c-2mlo)
2019/09/19(木) 19:53:05.48ID:ARAzw0xg0 >>28
ならマルチポスト放置してないで一つに絞ろう
ならマルチポスト放置してないで一つに絞ろう
37デフォルトの名無しさん (ワッチョイ 7901-hoFX)
2019/09/19(木) 21:51:25.54ID:0eG7NBUp0 らったったっらたた
38デフォルトの名無しさん (ワッチョイ 2964-9GzD)
2019/09/19(木) 22:19:21.08ID:vxcA2ILs0 すみません。
考えてもわからないので教えてください。
Dim Wb2 As Workbook
Set Wb2 = Workbooks(Range("B7").Value)
エラーメッセージ:インデックスが有効範囲にありません。
B7セルには<テストファイル.xlsx>が入っているとします。
Workbookにワークブック名を入れようとしているのですが、
なぜエラーなのでしょうか・・・?
考えてもわからないので教えてください。
Dim Wb2 As Workbook
Set Wb2 = Workbooks(Range("B7").Value)
エラーメッセージ:インデックスが有効範囲にありません。
B7セルには<テストファイル.xlsx>が入っているとします。
Workbookにワークブック名を入れようとしているのですが、
なぜエラーなのでしょうか・・・?
3938 (ワッチョイ 2964-9GzD)
2019/09/19(木) 22:33:23.12ID:vxcA2ILs0 SetするWorkbooksは、ファイルが開いていないといけなかったんですね。
自己解決しました。
失礼しました。
自己解決しました。
失礼しました。
40デフォルトの名無しさん (オッペケ Sr51-m6mK)
2019/09/19(木) 22:48:56.33ID:NLchELHJr4138 (ワッチョイ 2964-9GzD)
2019/09/19(木) 23:03:19.82ID:vxcA2ILs042デフォルトの名無しさん (ワッチョイ 1193-jTfi)
2019/09/20(金) 00:09:35.56ID:SAxa71i50 変に答えると幼稚な馬鹿がつけあがる
43デフォルトの名無しさん (ブーイモ MM4d-Qe2z)
2019/09/20(金) 01:19:15.21ID:L4svxBEcM と、幼稚な馬鹿が申してます
44デフォルトの名無しさん (ワッチョイ 7901-hoFX)
2019/09/20(金) 18:45:01.71ID:nQBbqzQu0 あかさたな
45デフォルトの名無しさん (ワッチョイ 82ca-pIpk)
2019/09/20(金) 20:42:04.97ID:L83O/vz70 VBAからIEを操作してhtmlで書かれたデータを取りに行くコードを書いています
ターゲットのサイトでは、一度に20件のデータしか表示されず
一番下までスクロールするたびに20件ずつ追加されます(データは全200件です)
htmlでは、20件のデータの下に「::after」と書かれており、スクロールが一番下に近づくと
新たな20件がロードされ、その下に「::after」が現れます
質問ですが、一度に200件全てのデータを取るためにはIEでスクロールさせる必要があるように思いますが
その場合、SendKeysを使って、SendKeys "{PGDN}" のようにするしかないのでしょうか?
それとも他に、何か良い方法があるようでしたらアドバイスをいただきたくお願い申し上げます
ターゲットのサイトでは、一度に20件のデータしか表示されず
一番下までスクロールするたびに20件ずつ追加されます(データは全200件です)
htmlでは、20件のデータの下に「::after」と書かれており、スクロールが一番下に近づくと
新たな20件がロードされ、その下に「::after」が現れます
質問ですが、一度に200件全てのデータを取るためにはIEでスクロールさせる必要があるように思いますが
その場合、SendKeysを使って、SendKeys "{PGDN}" のようにするしかないのでしょうか?
それとも他に、何か良い方法があるようでしたらアドバイスをいただきたくお願い申し上げます
46デフォルトの名無しさん (JP 0H4a-tMNN)
2019/09/20(金) 21:06:34.17ID:oAI6ZRfWH querytables.addでCSVファイルをエクセルシートに貼り付けたとき、グループ化で非表示にされている部分に正しく貼り付けられるのはいいのですが、グループ化非表示から表示状態にされてしまいます。
非表示部分に貼り付けつつ、非表示のままにするにはどうしたらいいでしょうか?
貼り付け先シートの元々の表示・非表示状態はそのままにしたいんですがよい方法はありますか?
非表示部分に貼り付けつつ、非表示のままにするにはどうしたらいいでしょうか?
貼り付け先シートの元々の表示・非表示状態はそのままにしたいんですがよい方法はありますか?
47デフォルトの名無しさん (アウアウウー Sa85-bsiH)
2019/09/21(土) 05:45:28.43ID:8VV0xXKBa sendkeysはなるべく使わない
48デフォルトの名無しさん (ワッチョイ 7901-hoFX)
2019/09/21(土) 08:35:41.78ID:/Gx75Cw00 abcdefg
49デフォルトの名無しさん (ワッチョイ 4d91-/N/j)
2019/09/21(土) 12:12:30.41ID:8qwe/SJE0 >>45
ページの作りによる。
例えばあなたは20件ずつなどと言っているけど、URLの入力など次第で200件全部表示できるかもしれない。
スクロールが必要かも分からないがSendkeysなんて使うのは子供と考えて良い。
ページの作りによる。
例えばあなたは20件ずつなどと言っているけど、URLの入力など次第で200件全部表示できるかもしれない。
スクロールが必要かも分からないがSendkeysなんて使うのは子供と考えて良い。
50デフォルトの名無しさん (ワッチョイ 82ca-4A/C)
2019/09/21(土) 13:08:32.19ID:XrHXKxEM0 >>47>>49
レスありがとうございます。
私もSendKeysは使いたくなかったので質問した次第です
> ページの作りによる。
ターゲットサイトは、dアニメのランキングのページです。
https://anime.dmkt-sp.jp/animestore/CR/CR00000013_001
ここからランキングのデータを抜き出して来ようと思ってますが、20件ずつしか表示されず…
何かいい方法はないでしょうかねぇ
レスありがとうございます。
私もSendKeysは使いたくなかったので質問した次第です
> ページの作りによる。
ターゲットサイトは、dアニメのランキングのページです。
https://anime.dmkt-sp.jp/animestore/CR/CR00000013_001
ここからランキングのデータを抜き出して来ようと思ってますが、20件ずつしか表示されず…
何かいい方法はないでしょうかねぇ
51デフォルトの名無しさん (ワッチョイ 7901-hoFX)
2019/09/21(土) 13:10:12.33ID:/Gx75Cw00 あーざーやーかーにー
いーろづいたっ
いーろづいたっ
52デフォルトの名無しさん (ワッチョイ a9ad-7RCD)
2019/09/21(土) 15:10:34.25ID:AFF+Wq/L0 うちの会社に、元SEでVBAバリバリ書ける、という人が
入ってきたんですが、色々Excel作業の自動化をお願いするために
現行の作業手順をお見せしたら、「ここの、Excel関数を使っているところは
意味が分からないので、関数の使い方から説明してください。」といわれ、
VLOOKUPとは、からお話ししないといけないそうで、もう自分でVBA
書こうかと思ってしまいます。
はじめはこういうもので、すぐ慣れてくれるんでしょうか?
「SEの資格」を持っている、という触れ込みの、部長の知り合いなので扱いは
要注意なのです。はぁ。
入ってきたんですが、色々Excel作業の自動化をお願いするために
現行の作業手順をお見せしたら、「ここの、Excel関数を使っているところは
意味が分からないので、関数の使い方から説明してください。」といわれ、
VLOOKUPとは、からお話ししないといけないそうで、もう自分でVBA
書こうかと思ってしまいます。
はじめはこういうもので、すぐ慣れてくれるんでしょうか?
「SEの資格」を持っている、という触れ込みの、部長の知り合いなので扱いは
要注意なのです。はぁ。
53デフォルトの名無しさん (ワッチョイ 0279-McVF)
2019/09/21(土) 15:31:27.17ID:idUljkgM0 経歴詐称があった場合、解雇はできるのか
結論から言うと、解雇できる場合もあればできない場合もあります。
一口に経歴詐称といっても、軽微なものから重大なものまであり、全てのケースで解雇が可能とすることは合理的ではないからです。
解雇ができるケースは、「重要な経歴」を詐称されたときに限られます(重要な経歴とは何を指すのかは下記で説明します)。
職歴に関する経歴詐称
職歴を詐称していた場合は、採用後の仕事の内容、賃金に直接影響を及ぼすもののため、重要な経歴を詐称していると判断される可能性が高いと言えます。
判例では、グラバス事件(東京地判平成16年12月17日 労判889号52頁)があり、プログラミング能力がなかったにも関わらず、あたかもスキルがあるかのように経歴書に記載。
採用面接でもそのように説明して、ソフトウェア会社に採用されたが、経歴詐称を理由とする懲戒解雇が認められたという事例があります。
結論から言うと、解雇できる場合もあればできない場合もあります。
一口に経歴詐称といっても、軽微なものから重大なものまであり、全てのケースで解雇が可能とすることは合理的ではないからです。
解雇ができるケースは、「重要な経歴」を詐称されたときに限られます(重要な経歴とは何を指すのかは下記で説明します)。
職歴に関する経歴詐称
職歴を詐称していた場合は、採用後の仕事の内容、賃金に直接影響を及ぼすもののため、重要な経歴を詐称していると判断される可能性が高いと言えます。
判例では、グラバス事件(東京地判平成16年12月17日 労判889号52頁)があり、プログラミング能力がなかったにも関わらず、あたかもスキルがあるかのように経歴書に記載。
採用面接でもそのように説明して、ソフトウェア会社に採用されたが、経歴詐称を理由とする懲戒解雇が認められたという事例があります。
54デフォルトの名無しさん (ワッチョイ 29d0-v5oN)
2019/09/21(土) 15:53:55.16ID:xM/61paW0 そもそも触れ込みから嘘だったのかまで疑ったらキリがないから、そこんとこは何とも言えないけど、
元SEが本当なら、少なくともVB(VBAじゃなく)は書けるけど、普通のオフィスワークはあんましてこなかった、とかじゃないの?
そんな感じのSEさんと一緒に仕事したことはある。ちょっと教えてあげたらあっという間に習得したけど。
でもやっぱ利用頻度の低い関数(LOOKUP系)や若干特殊な使い方(SUMPRODUCTを複数条件の判定や抽出に使うとか)には苦慮してた。
元SEが本当なら、少なくともVB(VBAじゃなく)は書けるけど、普通のオフィスワークはあんましてこなかった、とかじゃないの?
そんな感じのSEさんと一緒に仕事したことはある。ちょっと教えてあげたらあっという間に習得したけど。
でもやっぱ利用頻度の低い関数(LOOKUP系)や若干特殊な使い方(SUMPRODUCTを複数条件の判定や抽出に使うとか)には苦慮してた。
55デフォルトの名無しさん (ワッチョイ 0d7c-2mlo)
2019/09/21(土) 16:00:48.34ID:y4wrqwmo0 >>52
バリバリ書けるSEならExcelの基本的な関数ぐらい自分で調べられるものだがそれすらできないのはバリバリ具合すら怪しい予感
バリバリ書けるSEならExcelの基本的な関数ぐらい自分で調べられるものだがそれすらできないのはバリバリ具合すら怪しい予感
56デフォルトの名無しさん (アウアウウー Sa85-+KEk)
2019/09/21(土) 17:02:09.02ID:GoVsp8loa >>52
バリバリのエンジニアがVBA使う仕事に応募なんてしません
バリバリのエンジニアがVBA使う仕事に応募なんてしません
57デフォルトの名無しさん (ワッチョイ 0201-hoFX)
2019/09/21(土) 17:12:54.75ID:3YukOVDp0 >>52
そもそも謎の「SEの資格」とか言ってるお前も似たようなもんだろ…
そもそも謎の「SEの資格」とか言ってるお前も似たようなもんだろ…
58デフォルトの名無しさん (ワッチョイ 0201-jgJV)
2019/09/21(土) 17:23:57.08ID:DHk9cejb0 知らないことを知らないと言えるやつはまだ大丈夫だわ
ホントにやばいやつってのはな・・・
ホントにやばいやつってのはな・・・
59デフォルトの名無しさん (ワッチョイ 8242-iM7L)
2019/09/21(土) 21:02:04.95ID:p4RfJbo+0 もちろんできますよ大丈夫です(やべっ何もわからん どうしよー)
6049 (スフッ Sd22-plfC)
2019/09/21(土) 21:13:01.51ID:656pPxFFd >>50
スクロールしないで取得したかったんだが解析面倒で断念。
スクロールはSendkeysではなく、HTMLWindow2のscrollToなどを使う。
https://pastebin.com/V7S3XW71
スクロールしないで取得したかったんだが解析面倒で断念。
スクロールはSendkeysではなく、HTMLWindow2のscrollToなどを使う。
https://pastebin.com/V7S3XW71
61デフォルトの名無しさん (ワッチョイ 7e0d-eime)
2019/09/21(土) 21:14:21.75ID:+OkoEiEq0 VBAって必要になったら都度気合いで調べながら書いて、しばらく書かない間に忘れてまた必要になったらまた調べて覚え直すってことを繰り返してる気がする
62デフォルトの名無しさん (スフッ Sd22-/N/j)
2019/09/21(土) 21:59:24.26ID:656pPxFFd63デフォルトの名無しさん (スフッ Sd22-/N/j)
2019/09/21(土) 22:06:05.25ID:656pPxFFd64デフォルトの名無しさん (ワッチョイ 7901-hoFX)
2019/09/21(土) 23:00:31.94ID:/Gx75Cw00 あいうえお
65デフォルトの名無しさん (ワッチョイ 82ca-pIpk)
2019/09/21(土) 23:30:08.68ID:XrHXKxEM0 >>60
> スクロールしないで取得したかったんだが解析面倒で断念。
> https://pastebin.com/V7S3XW71
おお、わざわざここまで!
大変お手数をおかけすることとなってしまい、申し訳ないやら嬉しいやら…ありがとうございます!!
> スクロールはSendkeysではなく、HTMLWindow2のscrollToなどを使う。
最近、ネットのブログなどを参考に
見よう見まねでExcelのVBAとIE操作を両方一緒に始めたのですが…
ループで200項目取り出すまでの条件の書き方、スクロールの書き方、すごく参考になります!
ランキングデータの取り出し方…、ここまでシンプルに書けるものなんですね!!
恥ずかしながら、まだオブジェクトとかコレクションとかアイテムとかがごっちゃになってて頭で整理できておらず
文法エラー(?)の嵐に悩まされつつコードを書いてる段階で…"ChildNodes"とかもまだ使ったことないです…
本当に感謝です。
> スクロールしないで取得したかったんだが解析面倒で断念。
> https://pastebin.com/V7S3XW71
おお、わざわざここまで!
大変お手数をおかけすることとなってしまい、申し訳ないやら嬉しいやら…ありがとうございます!!
> スクロールはSendkeysではなく、HTMLWindow2のscrollToなどを使う。
最近、ネットのブログなどを参考に
見よう見まねでExcelのVBAとIE操作を両方一緒に始めたのですが…
ループで200項目取り出すまでの条件の書き方、スクロールの書き方、すごく参考になります!
ランキングデータの取り出し方…、ここまでシンプルに書けるものなんですね!!
恥ずかしながら、まだオブジェクトとかコレクションとかアイテムとかがごっちゃになってて頭で整理できておらず
文法エラー(?)の嵐に悩まされつつコードを書いてる段階で…"ChildNodes"とかもまだ使ったことないです…
本当に感謝です。
66デフォルトの名無しさん (ワッチョイ 298e-l2za)
2019/09/21(土) 23:32:05.21ID:JIxctC3M0 また幼稚なゆとり世代馬鹿か
67デフォルトの名無しさん (アウアウウー Sa85-bsiH)
2019/09/22(日) 05:33:04.20ID:8C/KzzE0a 他人の批判しても成果はあがらない
68デフォルトの名無しさん (オッペケ Sr51-EjsL)
2019/09/22(日) 17:46:57.02ID:aib8uIrzr 凄く基本的な質問だと思うのですが、
Range("A1".Offset(0,12)).Activate
はだめで、
Range("A1").Offset(0,12).Activate
が正しいのはなんでなのでしょうか?
Range("A1".Offset(0,12)).Activate
はだめで、
Range("A1").Offset(0,12).Activate
が正しいのはなんでなのでしょうか?
69デフォルトの名無しさん (アウアウウー Sa85-+KEk)
2019/09/22(日) 17:53:07.62ID:7ea+dVk1a >>68
VBAでそのへんを正しく理解するのはまず不可能だしその必要もないから、定型句だと思って暗記しなさい
ちゃんと理解したかったらJavaのようなきちんとしたオブジェクト指向言語を学ぶことをお勧めする
VBAでそのへんを正しく理解するのはまず不可能だしその必要もないから、定型句だと思って暗記しなさい
ちゃんと理解したかったらJavaのようなきちんとしたオブジェクト指向言語を学ぶことをお勧めする
70デフォルトの名無しさん (ワッチョイ 0d7c-2mlo)
2019/09/22(日) 18:49:17.99ID:hRt1URHX0 >>68
引数が間違ってるから
引数が間違ってるから
71デフォルトの名無しさん (アークセー Sx51-uljG)
2019/09/22(日) 19:59:23.95ID:hXw+7SRax >>68
一番目の式の方は、"A1".Offset(0, 12)という表現がVBAの構文上無効で何も値を返さない式になっている
なので、参照先のセル範囲の名前をバリアント型の引数として要求しているRangeプロパティ式の評価に失敗してしまい、Rangeオブジェクトの取得にも失敗する
文字列や数値のリテラルに.(任意の値)と続けて何らかのオブジェクトにアクセスしようとしても、そもそもそのようなアクセスルールが定義されていないので当然失敗する
反対にRange("A1").Offset(0,12)の方は構文上無効な表現がなく、RangeオブジェクトのメンバのOffsetプロパティ式を正しく用いているので、Offsetプロパティを介してA1セルから12列分座標移動したセルを取得することができる
一番目の式の方は、"A1".Offset(0, 12)という表現がVBAの構文上無効で何も値を返さない式になっている
なので、参照先のセル範囲の名前をバリアント型の引数として要求しているRangeプロパティ式の評価に失敗してしまい、Rangeオブジェクトの取得にも失敗する
文字列や数値のリテラルに.(任意の値)と続けて何らかのオブジェクトにアクセスしようとしても、そもそもそのようなアクセスルールが定義されていないので当然失敗する
反対にRange("A1").Offset(0,12)の方は構文上無効な表現がなく、RangeオブジェクトのメンバのOffsetプロパティ式を正しく用いているので、Offsetプロパティを介してA1セルから12列分座標移動したセルを取得することができる
72デフォルトの名無しさん (ワッチョイ 7901-hoFX)
2019/09/23(月) 08:06:29.00ID:1/X0hGb20 なにぬねの
73デフォルトの名無しさん (ドコグロ MMca-2D2T)
2019/09/23(月) 08:16:13.52ID:DBTsObIXM VBAのリテラルはメンバを持たないから
他言語だと型変換とかあるんだけど
他言語だと型変換とかあるんだけど
74デフォルトの名無しさん (アークセー Sx51-uljG)
2019/09/23(月) 14:19:12.95ID:6dsrIE/rx リテラルがそのままstring型オブジェクトとして使える言語だとメンバアクセスできて楽だよね
75デフォルトの名無しさん (ワッチョイ 7901-hoFX)
2019/09/23(月) 21:03:41.25ID:1/X0hGb20 たちつてやと
76デフォルトの名無しさん (ワッチョイ 7e0d-eime)
2019/09/24(火) 00:09:46.67ID:Knbo6pxK0 VBEはインテリセンスがクソ
77デフォルトの名無しさん (アークセー Sx51-uljG)
2019/09/24(火) 00:31:17.33ID:dEEBEAN9x VBEは静的に型判定できるリテラルくらいハイライト表示対応してくれと思う
78デフォルトの名無しさん (ワッチョイ 0d7c-2mlo)
2019/09/24(火) 01:28:17.40ID:GahaPn620 そもそもExcelのおまけ機能だし
79デフォルトの名無しさん (ワッチョイ 7901-hoFX)
2019/09/24(火) 12:36:08.37ID:b0EiNdg20 はひふへほ
80デフォルトの名無しさん (アウアウクー MM11-/3Y1)
2019/09/24(火) 12:41:06.36ID:jDE40bGiM イミディエイトとローカルのウインドウ、上下にドッキングしてしまったのだけど、左右にドッキングするようにはどうすればいいのだろう…
8149 (スッップ Sd22-/N/j)
2019/09/24(火) 12:46:55.24ID:PfH2ve03d82デフォルトの名無しさん (ワッチョイ 7901-hoFX)
2019/09/24(火) 12:57:05.92ID:b0EiNdg20 やいゆえよ
83デフォルトの名無しさん (アウアウウー Sa85-9q2I)
2019/09/24(火) 16:39:46.34ID:Zg6Hxb/Wa いきしちにひみいりい
84デフォルトの名無しさん (ワッチョイ 0d7c-2mlo)
2019/09/24(火) 19:07:39.27ID:GahaPn620 >>80
移動させる時に判定のシビアなガイド枠みたいなのが出るから置きたい位置にハマるまで頑張る
移動させる時に判定のシビアなガイド枠みたいなのが出るから置きたい位置にハマるまで頑張る
85デフォルトの名無しさん (ワッチョイ 7e0d-eime)
2019/09/25(水) 00:27:11.58ID:P1Zkaqvu0 VBAの代わりにPython実行環境を取り込む動きがあるらしいね
もしそうなったらVBA界隈の閉塞感も変わるかな
もしそうなったらVBA界隈の閉塞感も変わるかな
86デフォルトの名無しさん (アウアウウー Sa85-9q2I)
2019/09/25(水) 06:45:55.03ID:pkvL+Jrla まじ?
エクセルやってる一般社員様がpython始めたらどうなるんだろ
エクセルやってる一般社員様がpython始めたらどうなるんだろ
87デフォルトの名無しさん (スフッ Sd22-k+x8)
2019/09/25(水) 08:47:00.45ID:eyE9qOIMd おっぱいでexcelを自動化する
88デフォルトの名無しさん (アークセー Sx51-m6mK)
2019/09/25(水) 09:19:56.07ID:XMGhQQhjx Pythonエンジン搭載は色んな理由で見送られたはず
89デフォルトの名無しさん (ワッチョイ 298e-l2za)
2019/09/25(水) 13:51:45.80ID:uf0+2woN0 >>85
未だにこういう馬鹿がいるのか
未だにこういう馬鹿がいるのか
90デフォルトの名無しさん (JP 0H4a-tMNN)
2019/09/25(水) 17:46:53.71ID:sp9MNwgvH91デフォルトの名無しさん (ワッチョイ 1111-iM7L)
2019/09/25(水) 19:10:29.50ID:lvyCMB6U092デフォルトの名無しさん (ワッチョイ ff0d-hLG/)
2019/09/26(木) 00:31:10.28ID:ZFJdpCv/0 jsだったらgasと同じような感じになるのかな
gasはそもそもスプレッドシート自体の機能が物足りないからイマイチだったんだけど
gasはそもそもスプレッドシート自体の機能が物足りないからイマイチだったんだけど
93デフォルトの名無しさん (アークセー Sxbb-aWhQ)
2019/09/26(木) 00:57:48.08ID:89bcSR2Xx これからJSエンジンが実装されるならTypeScriptベースで型付け強制になるだろうな
94デフォルトの名無しさん (ブーイモ MMcf-mBHK)
2019/09/26(木) 20:07:07.87ID:+ztuXuzlM .ClearContents と .Value="" では実行後のセルの状態は異なりますか?
95デフォルトの名無しさん (ワッチョイ e77c-3Qav)
2019/09/26(木) 20:28:04.65ID:aKtMMU310 何も載らないよ
Excel自体クラウド上で使うようになってきてるから
マクロみたい使うならJavaScriptなのかもね
Excel自体クラウド上で使うようになってきてるから
マクロみたい使うならJavaScriptなのかもね
96デフォルトの名無しさん (ワッチョイ 0701-Gn+r)
2019/09/27(金) 06:06:27.72ID:sVncIXEy0 きーよしー
こーのよーるー
こーのよーるー
97デフォルトの名無しさん (ブーイモ MM7f-a2LJ)
2019/09/27(金) 07:55:16.60ID:ccoeIvApM ハーゲーはー ひーかーり
98デフォルトの名無しさん (アークセー Sxbb-aWhQ)
2019/09/27(金) 08:22:15.68ID:RTCGxTj8x 最近はExcel操作のためにVBAを使うのはもうなんか最後の手段って感じがする
PowerQuery(M言語)、PowerPivot(DAX)、JavaScript、Python、PowerShellのどれかで書く方が楽だしメンテも簡単
PowerQuery(M言語)、PowerPivot(DAX)、JavaScript、Python、PowerShellのどれかで書く方が楽だしメンテも簡単
99デフォルトの名無しさん (スプッッ Sd7f-W5ZC)
2019/09/27(金) 08:43:34.46ID:Lnp0vM2Id 趣味が大がかりになってきて使う材料の管理が煩雑になってきたのでExcelを使って管理しようかなと考えています
工程が1,2,3…とあって、それぞれの工程で使う部材は今のところ重複はなく(今後どうなるかわからない)部材毎に色違いやグレード違い等の派生品があり、
用途としては工程毎に使う部材を別シートにリストアップしたり、規定量を割ったものをピックアップ
部材の管理番号を振るとき
番号は工程や派生に関わらず一列で一意の連番
3列で工程ー工程内の部材を連番ー派生を枝番
工程に関わらず部材毎に連番ー派生品を枝番
マクロを組むときこれらのうちどうするのがよい構造になるでしょうか?
工程が1,2,3…とあって、それぞれの工程で使う部材は今のところ重複はなく(今後どうなるかわからない)部材毎に色違いやグレード違い等の派生品があり、
用途としては工程毎に使う部材を別シートにリストアップしたり、規定量を割ったものをピックアップ
部材の管理番号を振るとき
番号は工程や派生に関わらず一列で一意の連番
3列で工程ー工程内の部材を連番ー派生を枝番
工程に関わらず部材毎に連番ー派生品を枝番
マクロを組むときこれらのうちどうするのがよい構造になるでしょうか?
100デフォルトの名無しさん (スフッ Sd7f-mDN4)
2019/09/27(金) 09:04:03.76ID:ikgA/i06d まず3行にまとめます。
101デフォルトの名無しさん (ワッチョイ bff7-qYyZ)
2019/09/27(金) 12:08:52.99ID:yAOzGr2R0 RDBSを使って合成テーブルを作ります
102デフォルトの名無しさん (ワッチョイ 7f63-aXvP)
2019/09/27(金) 21:25:04.26ID:yKrr7IDu0 >>98
Excelデータ操作するのにか!?
Excelデータ操作するのにか!?
103デフォルトの名無しさん (ワッチョイ 5f59-EMMW)
2019/09/27(金) 21:29:52.64ID:W7KJhMQF0 確かにvlookup関数もCで作ったほうが処理速度速いですし
104デフォルトの名無しさん (アークセー Sxbb-aWhQ)
2019/09/28(土) 01:10:35.83ID:vqFcrTxsx >>102
情報取得とかテーブル加工とかならVBAよりQueryTable)PowerPivotの方がよっぽど速いし型安全にデータ処理できる
数万行以上のデータのリレーション構築とテーブル加工をVBAやWorkshhet関数で実現するとか正気の沙汰じゃないぞ
情報取得とかテーブル加工とかならVBAよりQueryTable)PowerPivotの方がよっぽど速いし型安全にデータ処理できる
数万行以上のデータのリレーション構築とテーブル加工をVBAやWorkshhet関数で実現するとか正気の沙汰じゃないぞ
105デフォルトの名無しさん (アウアウクー MMbb-5sTQ)
2019/09/28(土) 07:02:49.99ID:kCxp0LgMM なんか齢50近くになると新しい言語?を知らない…power query?power pivot?
…後で調べてみないと…
…後で調べてみないと…
106デフォルトの名無しさん (ワッチョイ 5fa2-kLFp)
2019/09/28(土) 07:36:24.34ID:HGKDuO1d0 M言語ってどうやって勉強するのさ
英語の本け?
英語の本け?
107デフォルトの名無しさん (ワッチョイ 5f59-EMMW)
2019/09/28(土) 08:34:58.34ID:oUtMZ4Zg0 >>106
マイクロソフトが仕様書公開してる
マイクロソフトが仕様書公開してる
108デフォルトの名無しさん (アークセー Sxbb-aWhQ)
2019/09/28(土) 09:58:25.05ID:OFq3+Dp/x109デフォルトの名無しさん (アークセー Sxbb-aWhQ)
2019/09/28(土) 14:02:31.05ID:OFq3+Dp/x >>99
一番目の方法でまず一意のIDを持つ部材のマスタを作った方が良い
その上で、派生関係や使用工程は列を分けて部材マスタの属性値として管理する
そうすれば各使用工程で使う部材を抽出するビューが漏れなく簡単に作れるし、部材データの追加も容易
何故他のやり方が良くないかというと、使用工程や派生関係を管理番号で構造的に表そうとしても、一対一の親子関係から外れる複合的な派生関係の表現が難しいし、複数の工程にまたがって使用する部材が登場した場合の付番がとても困難だから
一番目の方法でまず一意のIDを持つ部材のマスタを作った方が良い
その上で、派生関係や使用工程は列を分けて部材マスタの属性値として管理する
そうすれば各使用工程で使う部材を抽出するビューが漏れなく簡単に作れるし、部材データの追加も容易
何故他のやり方が良くないかというと、使用工程や派生関係を管理番号で構造的に表そうとしても、一対一の親子関係から外れる複合的な派生関係の表現が難しいし、複数の工程にまたがって使用する部材が登場した場合の付番がとても困難だから
110デフォルトの名無しさん (ワッチョイ 878e-95m8)
2019/09/28(土) 16:34:58.82ID:w31BDneZ0 ↑仕様もわからないのに勝手に決めつける馬鹿
111デフォルトの名無しさん (アークセー Sxbb-aWhQ)
2019/09/28(土) 17:19:26.34ID:OFq3+Dp/x >>110
データ活用のシナリオの説明もある程度書いてくれてるし、3パターンの中からオススメを選んで教えてくれと言われてるんだから根拠を示しながら回答するのはOKだろ
データ活用のシナリオの説明もある程度書いてくれてるし、3パターンの中からオススメを選んで教えてくれと言われてるんだから根拠を示しながら回答するのはOKだろ
112デフォルトの名無しさん (ワッチョイ 27da-rP+5)
2019/09/29(日) 08:21:00.73ID:9ZqWtSe+0 馬鹿と言いたいだけの馬鹿は相手にしなくていいよ
113デフォルトの名無しさん (ドコグロ MM1f-Gn+r)
2019/09/29(日) 09:41:07.61ID:xMtED3CuM > 馬鹿と言いたいだけの馬鹿
>>112の悪口はやめなよ
>>112の悪口はやめなよ
114デフォルトの名無しさん (ワッチョイ 87b0-S/NQ)
2019/09/29(日) 10:19:36.85ID:whL1Vznb0 今、困っていることがあり教えてください。
Excelをオープンした時に、入力規則のリストが設定されているセルに
VBAでリストにある文字列を張り付けるとリストが解除されてしまい困っています。
ただ、Excelを既にオープンしている状態であれば、VBAで文字列を張り付けてもリストは解除されません。
Excelをオープンした際の文字列貼り付けでもリストを解除しない方法、何かないでしょうか。
Excelをオープンした時に、入力規則のリストが設定されているセルに
VBAでリストにある文字列を張り付けるとリストが解除されてしまい困っています。
ただ、Excelを既にオープンしている状態であれば、VBAで文字列を張り付けてもリストは解除されません。
Excelをオープンした際の文字列貼り付けでもリストを解除しない方法、何かないでしょうか。
115デフォルトの名無しさん (アークセー Sxbb-aWhQ)
2019/09/29(日) 11:49:35.55ID:mZHqVu1Bx >>114
試してないから自信はないけど配列に文字列の値を格納してからコピー先セルに一括代入してみたらどうかね
試してないから自信はないけど配列に文字列の値を格納してからコピー先セルに一括代入してみたらどうかね
116デフォルトの名無しさん (ワントンキン MM3f-qVNn)
2019/09/29(日) 12:33:57.48ID:QiINVIOGM 計算方法の自動手動を切り替えるとか
doeventsを挟むとか
入力規則を消去して再度設定してみるとか
doeventsを挟むとか
入力規則を消去して再度設定してみるとか
117デフォルトの名無しさん (ワッチョイ 87b0-S/NQ)
2019/09/29(日) 13:40:07.40ID:whL1Vznb0118デフォルトの名無しさん (ワントンキン MM3f-qVNn)
2019/09/29(日) 16:27:33.03ID:QiINVIOGM 再設定で目的が果たせるならそれでいいんじゃないの
気に入らないかもしれないけど
気に入らないかもしれないけど
119デフォルトの名無しさん (ワッチョイ 87b0-S/NQ)
2019/09/29(日) 19:28:31.60ID:whL1Vznb0120デフォルトの名無しさん (ワッチョイ e77c-y+KO)
2019/09/29(日) 20:52:21.32ID:/1W8DtBL0 1ステップずつ何が起こってるか確認してみた?
121デフォルトの名無しさん (アークセー Sxbb-aWhQ)
2019/09/29(日) 21:37:57.26ID:fy6bWXAvx ウォッチ式で入力規則が無効になった瞬間を捕まえたらどのステップで問題が起きてるか分かるよ
あとApplication.EnableEvents=False の状態で入力規則が無効化する症状が同じように出るかどうかを確かめると良いかも
副作用あるから気を付けた方がいいけどね
あとApplication.EnableEvents=False の状態で入力規則が無効化する症状が同じように出るかどうかを確かめると良いかも
副作用あるから気を付けた方がいいけどね
122デフォルトの名無しさん (ワッチョイ 5f59-EMMW)
2019/09/29(日) 22:03:13.06ID:sGqY7mop0 デバッグは大事
123デフォルトの名無しさん (ワッチョイ 7fdd-rP+5)
2019/09/29(日) 23:10:51.27ID:JC6PY5Dx0 Worksheetの表示を縮小したときに名前をつけた範囲名が青文字で表示されますが
あれを縮小表示なしに表示するメソッドとかないですかね?
なければ諦めて作ろうと思って、、
あれを縮小表示なしに表示するメソッドとかないですかね?
なければ諦めて作ろうと思って、、
124デフォルトの名無しさん (ワッチョイ 871a-ZFr+)
2019/09/30(月) 09:40:08.63ID:GRnK7Y6k0 以前の勤務表の作成についての質問をしたものです。
指定範囲に対して条件を参照して自動で勤務を組むにはどのようなコードが使えますか。
指定範囲に対して条件を参照して自動で勤務を組むにはどのようなコードが使えますか。
125デフォルトの名無しさん (ワンミングク MM3f-qVNn)
2019/09/30(月) 09:44:23.17ID:5dp60tLcM その通りにコードを組めばいいです
よかったですね
よかったですね
126デフォルトの名無しさん (ワッチョイ 5f42-upKm)
2019/09/30(月) 14:06:19.14ID:Xo+EVkfu0 そこまでくると質問というより代わりに作ってって感じな気がする
127デフォルトの名無しさん (スフッ Sd7f-C0+4)
2019/09/30(月) 14:27:24.46ID:KUbJhJ6Ud 15万ぐらい払えば作ってくれるよ
128デフォルトの名無しさん (ワッチョイ 5fda-AQ1v)
2019/09/30(月) 18:03:03.23ID:uds7JUMo0 任意のフォルダを開きたいくて、そのファイルのパスが
A1に書いてあるときにどんなコード書いたらできますか?だれか教えてください。お願いします🥺
A1に書いてあるときにどんなコード書いたらできますか?だれか教えてください。お願いします🥺
129デフォルトの名無しさん (ワッチョイ 5fa2-kLFp)
2019/09/30(月) 18:38:27.74ID:MOVpytTQ0 え?w>>124見たいな糞簡単なの作って15万???
うそやろwwwww
うそやろwwwww
130デフォルトの名無しさん (ワッチョイ e77c-y+KO)
2019/09/30(月) 19:38:06.65ID:Db1Fe+X90 >>128
ファイル形式は?
ファイル形式は?
131デフォルトの名無しさん (ワッチョイ 47ff-Iuid)
2019/09/30(月) 20:42:31.76ID:rUBZxyEm0 >>128
次から次へと現れる馬鹿
次から次へと現れる馬鹿
132デフォルトの名無しさん (アークセー Sxbb-aWhQ)
2019/09/30(月) 21:02:52.82ID:KDJog/g4x >>128
フォルダのフルパスがA1セルに入っているなら、
Shell Range("A1").Value, vbNormalFocus
と書けばとりあえずフォルダを開くことはできる
開いたフォルダの中のファイルを選んで何らかの操作をしたいならファイルそのものを掴む別の工夫が必要
フォルダのフルパスがA1セルに入っているなら、
Shell Range("A1").Value, vbNormalFocus
と書けばとりあえずフォルダを開くことはできる
開いたフォルダの中のファイルを選んで何らかの操作をしたいならファイルそのものを掴む別の工夫が必要
133デフォルトの名無しさん (ワッチョイ 7f63-S/NQ)
2019/09/30(月) 21:15:26.21ID:VO0MeE9M0 .Findで検索するマクロ作ってるけど死にそう
全シート検索で結合セル気にしないでいい方法ないですか
一致したの全部もれなくとるだけなのに
なんでこんな大変なんですか
全シート検索で結合セル気にしないでいい方法ないですか
一致したの全部もれなくとるだけなのに
なんでこんな大変なんですか
134デフォルトの名無しさん (アークセー Sxbb-aWhQ)
2019/09/30(月) 22:05:40.31ID:KDJog/g4x >>133
何がそんなに大変なの?
何がそんなに大変なの?
135デフォルトの名無しさん (ワッチョイ 7f63-S/NQ)
2019/09/30(月) 22:43:31.23ID:VO0MeE9M0 初回検索と次項目の検索が別メソッド
検索したあとに問答無用で一周して戻ってくる謎仕様
結合セル最初に見つけたら2週目で見つけられなくて死亡
最初から検索しようとしたら最初の次のセルから開始という超絶理不尽仕様
最終セル開始点にしようとしたら最終セルが結合セルで死亡
検索したあとに問答無用で一周して戻ってくる謎仕様
結合セル最初に見つけたら2週目で見つけられなくて死亡
最初から検索しようとしたら最初の次のセルから開始という超絶理不尽仕様
最終セル開始点にしようとしたら最終セルが結合セルで死亡
136デフォルトの名無しさん (ワッチョイ 7f63-S/NQ)
2019/09/30(月) 22:55:52.56ID:VO0MeE9M0137デフォルトの名無しさん (ワッチョイ c72d-SlO0)
2019/09/30(月) 23:15:22.35ID:fjb3wiBS0 あるシートから10000行程クリップボードにコピーして別シートに行挿入する事を10回程度繰り返すマクロがメモリ不足で停止してしまいます。
エクセルは32bitですがメモリ使用量は2.5GB程度、使用率は80%程度なので余裕はあります。
コピー&挿入だけでこんなにメモリ食うのは想定外だったのですが何か良い対策ありませんか?
クリップボードを使ってる理由は書式もコピーしたいからです。
エクセルは32bitですがメモリ使用量は2.5GB程度、使用率は80%程度なので余裕はあります。
コピー&挿入だけでこんなにメモリ食うのは想定外だったのですが何か良い対策ありませんか?
クリップボードを使ってる理由は書式もコピーしたいからです。
138デフォルトの名無しさん (アークセー Sxbb-aWhQ)
2019/10/01(火) 00:40:37.46ID:1yOvNLR5x >>137
結合セルがない場合で、書式が行列で統一的に構造化されている(=手動でランダムに設定された書式がない)場合の話だけど、セルの値のコピーはクエリテーブルを使い、セル書式はスタイルとして登録しておいて値をコピーしたあとにテーブル単位で適用するようにする
それができないなら常套手段的な対策として、描画停止、セルの自動計算の無効化、一度のコピー行数の抑制、コピーする情報の量の削減(列を減らす、セルに入れる値の文字列長に上限をつける等)をやるしかない
結合セルがない場合で、書式が行列で統一的に構造化されている(=手動でランダムに設定された書式がない)場合の話だけど、セルの値のコピーはクエリテーブルを使い、セル書式はスタイルとして登録しておいて値をコピーしたあとにテーブル単位で適用するようにする
それができないなら常套手段的な対策として、描画停止、セルの自動計算の無効化、一度のコピー行数の抑制、コピーする情報の量の削減(列を減らす、セルに入れる値の文字列長に上限をつける等)をやるしかない
139デフォルトの名無しさん (アークセー Sxbb-aWhQ)
2019/10/01(火) 00:48:34.75ID:1yOvNLR5x >>135
検索対象のセル範囲でループを回して、MergeAreaプロパティから取得できる結合範囲の第一セルの値に対してInStr関数でチェックをかけるほうが簡単に実装できる
一度触った第一セルをDictionaryに突っ込んでおけば重複回避の処理も簡単に書けるし
検索対象のセル範囲でループを回して、MergeAreaプロパティから取得できる結合範囲の第一セルの値に対してInStr関数でチェックをかけるほうが簡単に実装できる
一度触った第一セルをDictionaryに突っ込んでおけば重複回避の処理も簡単に書けるし
140デフォルトの名無しさん (ワッチョイ df2f-+BGV)
2019/10/01(火) 02:44:48.32ID:xCeEOzji0 1000行を100回にすれば解決する気がする
141デフォルトの名無しさん (ワッチョイ 27da-rP+5)
2019/10/01(火) 20:19:29.97ID:/ilC+Vr+0 >>137
想定して最初から設計しなおした方がいいんじゃね
想定して最初から設計しなおした方がいいんじゃね
142デフォルトの名無しさん (ワッチョイ e77c-y+KO)
2019/10/01(火) 20:26:17.87ID:zIavCJ+m0 >>137
一度に全部やらず少しずつやるとか、挿入やめて別シートに貼り付けていくとか
一度に全部やらず少しずつやるとか、挿入やめて別シートに貼り付けていくとか
143デフォルトの名無しさん (ワッチョイ e77c-e8W8)
2019/10/01(火) 23:46:40.82ID:SJOrrfFy0 vbaできる人は何歳くらいの方が多いのですか?
144デフォルトの名無しさん (ワッチョイ 87f1-a2LJ)
2019/10/01(火) 23:51:07.99ID:0MgRI3uB0 100才。
きんは100才100才。ぎんも100才100才。
もう死んじゃいましたけど。
きんは100才100才。ぎんも100才100才。
もう死んじゃいましたけど。
145デフォルトの名無しさん (ワッチョイ 87f1-a2LJ)
2019/10/01(火) 23:51:51.43ID:0MgRI3uB0 いまは中曽根元首相が100才だよ。
146デフォルトの名無しさん (スフッ Sd7f-S/NQ)
2019/10/02(水) 10:56:45.47ID:BB7vTg8Dd >>145
もう101歳になった
もう101歳になった
147デフォルトの名無しさん (ワッチョイ 87f1-a2LJ)
2019/10/02(水) 16:36:11.08ID:2/U5/wmB0 100才くらいなら健康でも1年後にもまだ生きてる生存率は50%くらいだよな。
そろそろ死神のお迎えがくるかな。
そろそろ死神のお迎えがくるかな。
148デフォルトの名無しさん (ワッチョイ 7f68-88hv)
2019/10/02(水) 19:09:20.31ID:TvQrnV1i0 そんな事言ってる人に来るからな
149デフォルトの名無しさん (ワッチョイ 5f63-S/NQ)
2019/10/02(水) 23:17:24.03ID:gSiaZ46v0 直せるものもろくに直さず
超絶くそのまま世界で最も使われる言語の一つになってしまったVBAに
いろいろ思うところがある
俺らがああしろこうしろと習ってることってどこまで本当なのか
超絶くそのまま世界で最も使われる言語の一つになってしまったVBAに
いろいろ思うところがある
俺らがああしろこうしろと習ってることってどこまで本当なのか
150デフォルトの名無しさん (スプッッ Sd12-G1PU)
2019/10/03(木) 04:52:33.28ID:MliRm7Y8d 人の言うことなんか信用するな
学校で教えることなんて、諸説あるうちの一つを紹介してるだけ
自分で直接見聞きしたことが真実に一番近い
学校で教えることなんて、諸説あるうちの一つを紹介してるだけ
自分で直接見聞きしたことが真実に一番近い
151137 (ワッチョイ 3d2d-PFwD)
2019/10/03(木) 05:35:40.04ID:GiO0wfXg0152デフォルトの名無しさん (オイコラミネオ MMb5-shqV)
2019/10/04(金) 08:52:18.52ID:D6R1G7QwM 質問させてください。
シート上に簡単なHTMLを表示させたいのですが、そのようなコントロールはありますでしょうか?
必要なタグは、br font(color属性のみ) bold div(改行の代わり)くらいです。
目的としては、WEBデータベースに登録されているリッチテキストフィールドをダウンロードして表示することになります。
危ないタグはWEBサービス側で排除されていると思います。
シート上に簡単なHTMLを表示させたいのですが、そのようなコントロールはありますでしょうか?
必要なタグは、br font(color属性のみ) bold div(改行の代わり)くらいです。
目的としては、WEBデータベースに登録されているリッチテキストフィールドをダウンロードして表示することになります。
危ないタグはWEBサービス側で排除されていると思います。
153デフォルトの名無しさん (ワッチョイ f1ce-G1PU)
2019/10/04(金) 10:46:00.35ID:oVJ/Q3fQ0154デフォルトの名無しさん (ワッチョイ 11da-M8t1)
2019/10/04(金) 20:22:42.36ID:vt9px/Y/0 >>152
簡単なHTMLと簡単でないHTMLの違いがわからん
簡単なHTMLと簡単でないHTMLの違いがわからん
155デフォルトの名無しさん (スプッッ Sdea-y84I)
2019/10/05(土) 10:01:54.14ID:TWDKigvVd MSはC#とかTSとか素性のよい言語開発してるのにどうしてマクロは頑なにVBAのみなのか…
156デフォルトの名無しさん (ブーイモ MM0a-zRv8)
2019/10/05(土) 10:16:11.22ID:U/TjAS/YM 企業ユーザーは既存資産が動く事が大事
新しい事は求めていない
新しい事は求めていない
157デフォルトの名無しさん (アウアウウー Sa21-4jzF)
2019/10/05(土) 10:21:54.58ID:yF+AhEbea c#でexcelの読み書きすればいい
158デフォルトの名無しさん (ワッチョイ ea01-XtwS)
2019/10/05(土) 11:06:04.60ID:do1ONn360 >>157
それならそれでいいんだけどMarshall.ComReleaseが面倒すぎる
それならそれでいいんだけどMarshall.ComReleaseが面倒すぎる
159デフォルトの名無しさん (ワッチョイ 6aa2-jw9j)
2019/10/05(土) 14:26:52.59ID:pEFp3YWl0 ""とclearcontentsって別物だったんだな。
一部書籍で扱いが同じだったが新刊書で違いが明らかになった。
一部書籍で扱いが同じだったが新刊書で違いが明らかになった。
160デフォルトの名無しさん (アークセー Sxbd-2RUv)
2019/10/05(土) 15:04:12.76ID:/n5ffSwIx >>159
どう違うんだ?
どう違うんだ?
161デフォルトの名無しさん (ササクッテロ Spbd-17qD)
2019/10/05(土) 15:20:21.70ID:6m4y9GjGp 長さ0の文字列と値・数式のクリア
162デフォルトの名無しさん (ワッチョイ 397c-GY5J)
2019/10/05(土) 15:24:12.24ID:YItdpMcG0 >>161
何を入れてクリアしてるかを聞いてるのでは
何を入れてクリアしてるかを聞いてるのでは
163デフォルトの名無しさん (アークセー Sxbd-2RUv)
2019/10/05(土) 15:52:41.48ID:/n5ffSwIx ClearContentsでクリアするとValueプロパティの中身が型未定義のEmpty値になるってことか?
164デフォルトの名無しさん (ブーイモ MM0a-zRv8)
2019/10/05(土) 15:53:36.09ID:U/TjAS/YM >>161
この2つで異なる結果を返す関数、演算は何ですか?
この2つで異なる結果を返す関数、演算は何ですか?
165デフォルトの名無しさん (ワッチョイ 6aa2-jw9j)
2019/10/05(土) 18:14:16.86ID:pEFp3YWl0 並べ替え、重複削除、ピボットテーブル、COUNTA関数
166デフォルトの名無しさん (ワッチョイ eaea-bPVp)
2019/10/05(土) 18:21:34.50ID:zs2CzSXz0 違うかなぁ?
typenameは、どちらもEmptyだし。並び替えにも影響しないみたいだけど、、
typenameは、どちらもEmptyだし。並び替えにも影響しないみたいだけど、、
167デフォルトの名無しさん (ワッチョイ ea01-XtwS)
2019/10/05(土) 19:16:42.87ID:do1ONn360 ""のTypeNameはvbStringじゃないの?
168デフォルトの名無しさん (ワッチョイ b501-Qh1z)
2019/10/05(土) 22:49:37.62ID:cygEmLxv0 特定フォルダの中のファイル名を取得したくて、A1にファイルパスが書いてあってあったとき
Dim fname As String fname = "DirSample.xlsx"
の"DirSample.xlsx"の部分をA1のパスにしたいのですが、どうやった良いですか?
Dim fname As String fname = "DirSample.xlsx"
の"DirSample.xlsx"の部分をA1のパスにしたいのですが、どうやった良いですか?
169デフォルトの名無しさん (オッペケ Srbd-2RUv)
2019/10/05(土) 23:05:00.52ID:I+mWDivyr fname = range("a1").value & "¥DirSample.xlsx"
170デフォルトの名無しさん (ワッチョイ 66e8-G1PU)
2019/10/06(日) 00:21:58.24ID:DJJ/a1MV0171デフォルトの名無しさん (オッペケ Srbd-ckhU)
2019/10/06(日) 01:50:18.38ID:yv4ZtA4Er172デフォルトの名無しさん (ラクペッ MM65-CrRW)
2019/10/06(日) 08:08:24.51ID:eVUjMqzVM173デフォルトの名無しさん (ドコグロ MM12-XtwS)
2019/10/06(日) 09:32:50.86ID:Lxoa9KpRM174デフォルトの名無しさん (ワッチョイ 397c-GY5J)
2019/10/06(日) 12:19:22.67ID:/4diLxRX0 >>171
Excelのセル内改行コードとテキストファイルの改行コードは違う
Excelのセル内改行コードとテキストファイルの改行コードは違う
175デフォルトの名無しさん (ワッチョイ ea4b-arkt)
2019/10/06(日) 13:05:06.23ID:RDxNCESt0 >>171
CSVのパーサーを自分で書けばいいです
CSVのパーサーを自分で書けばいいです
176デフォルトの名無しさん (アークセー Sxbd-2RUv)
2019/10/06(日) 13:10:14.83ID:H1C9JflMx >>171
QueryTableをコード内でAddするんじゃなくて、予めPowerQueryでセル内改行の処理を埋め込んだ接続を作っておいて、コード実行時にデータの読み込みとテーブル出力だけすればいいんじゃないの
QueryTableをコード内でAddするんじゃなくて、予めPowerQueryでセル内改行の処理を埋め込んだ接続を作っておいて、コード実行時にデータの読み込みとテーブル出力だけすればいいんじゃないの
177デフォルトの名無しさん (オッペケ Srbd-ckhU)
2019/10/06(日) 21:50:03.52ID:yv4ZtA4Er178デフォルトの名無しさん (オッペケ Srbd-ckhU)
2019/10/06(日) 21:50:35.79ID:yv4ZtA4Er179デフォルトの名無しさん (ワッチョイ 5ead-2rUB)
2019/10/06(日) 22:04:38.99ID:lVV4IJR90 VBAある表のデータで行と列が一致する列の値を返すコードを書きたいのですがどうしたらいいでしょうか?
行だけならVLOOKUPで行けると思うのですが列になるとどうしてラいいのかわかりません。
該当するセルの値を返したいです。
行だけならVLOOKUPで行けると思うのですが列になるとどうしてラいいのかわかりません。
該当するセルの値を返したいです。
180デフォルトの名無しさん (ワッチョイ f14b-arkt)
2019/10/06(日) 22:26:25.54ID:yDN+2LYi0 rangeをfor eachで巡回すればいいんじゃないの
181デフォルトの名無しさん (アークセー Sxbd-2RUv)
2019/10/06(日) 22:28:18.73ID:H1C9JflMx182デフォルトの名無しさん (ワッチョイ 397c-GY5J)
2019/10/06(日) 22:57:39.08ID:/4diLxRX0 >>177
コピペするならファイル作らなくてもクリップボードに送ってテキスト取り出し貼ればセル内改行も反映される
コピペするならファイル作らなくてもクリップボードに送ってテキスト取り出し貼ればセル内改行も反映される
183デフォルトの名無しさん (ワッチョイ 397c-GY5J)
2019/10/06(日) 22:59:41.24ID:/4diLxRX0 >>179
何がしたいのか知らないけどVLOOKUPの横版ならHLOOKUP
何がしたいのか知らないけどVLOOKUPの横版ならHLOOKUP
184デフォルトの名無しさん (ワッチョイ 5ead-2rUB)
2019/10/06(日) 23:02:28.07ID:lVV4IJR90 >>181
後者です。
シートに参照する表がありユーザーフォームで作った入力表がコンボボックスとなり
一つ目のコンボボックスが行とリンクしていて、二つめのコンボボックスが列と連動して言いて
行と列の一致した値をテキストボックスに表示させたい。
一つだけならVLOOOKUPでできるのですが表となると私の力だと全く思い浮かびません。
力といってもちょっと基本がわかって参考書とインターネットの中から使えそうなコード
を引っ張ってきて使えるように修正するくらいで一から工程を考え出す事は難しいです。
後者です。
シートに参照する表がありユーザーフォームで作った入力表がコンボボックスとなり
一つ目のコンボボックスが行とリンクしていて、二つめのコンボボックスが列と連動して言いて
行と列の一致した値をテキストボックスに表示させたい。
一つだけならVLOOOKUPでできるのですが表となると私の力だと全く思い浮かびません。
力といってもちょっと基本がわかって参考書とインターネットの中から使えそうなコード
を引っ張ってきて使えるように修正するくらいで一から工程を考え出す事は難しいです。
185デフォルトの名無しさん (ワッチョイ b501-Qh1z)
2019/10/06(日) 23:09:13.37ID:ZjSVYIsg0 ワークシートのchangeプロシージャで
A1:F5 A6:E6 A7:I105 に変更が加わったとき Range("F6") = Date をさせたいのだけど
If Intersect(Target, Union(Range("A1:F5"), Range("A6:E6"), Range("A7:I105"))) Is Nothing Then
ではうまくいきません。どなたか教えてください。
あと、セルに文字を入力するとき、対象となるセルを選択し、文字を入力したら、別のセルに入力途中の文字が表示され、Enterをおしたら対象となるセルに反映されました。
これもどうしたら普通通りになりますか?
A1:F5 A6:E6 A7:I105 に変更が加わったとき Range("F6") = Date をさせたいのだけど
If Intersect(Target, Union(Range("A1:F5"), Range("A6:E6"), Range("A7:I105"))) Is Nothing Then
ではうまくいきません。どなたか教えてください。
あと、セルに文字を入力するとき、対象となるセルを選択し、文字を入力したら、別のセルに入力途中の文字が表示され、Enterをおしたら対象となるセルに反映されました。
これもどうしたら普通通りになりますか?
186デフォルトの名無しさん (ワッチョイ 5ead-2rUB)
2019/10/06(日) 23:14:57.48ID:lVV4IJR90 >>183
しいて言うならVLOOKUPとHLOOKUPの合わせる感じ?
しいて言うならVLOOKUPとHLOOKUPの合わせる感じ?
187デフォルトの名無しさん (ワッチョイ 66e8-G1PU)
2019/10/06(日) 23:34:28.13ID:DJJ/a1MV0188デフォルトの名無しさん (ワッチョイ 397c-GY5J)
2019/10/06(日) 23:45:45.30ID:/4diLxRX0189デフォルトの名無しさん (ワッチョイ ea2c-2rUB)
2019/10/06(日) 23:45:57.04ID:ddN6wFVd0 Ruby では、2次元配列[ 行 ][ 列 ]で、そのセルを指せる。
ただし、行列のインデックスは、0 から始まる
require 'csv'
str = <<"EOT"
1,a,x
2,b,y
EOT
p table = CSV.parse( str )
#=> [["1", "a", "x"], ["2", "b", "y"]]
p table[ 1 ][ 2 ] #=> "y"
ただし、行列のインデックスは、0 から始まる
require 'csv'
str = <<"EOT"
1,a,x
2,b,y
EOT
p table = CSV.parse( str )
#=> [["1", "a", "x"], ["2", "b", "y"]]
p table[ 1 ][ 2 ] #=> "y"
190デフォルトの名無しさん (オッペケ Srbd-2RUv)
2019/10/07(月) 07:20:54.28ID:W+vOSLuyr191デフォルトの名無しさん (ワントンキン MM2e-arkt)
2019/10/07(月) 08:45:07.25ID:s6G9KopOM 見出し行の値をkeyにしてrowを取り出すdictionaryを作る
列も同じ様に配列を作る
で、コンボボックスで選択した値で配列から行列番号を取り出す
列も同じ様に配列を作る
で、コンボボックスで選択した値で配列から行列番号を取り出す
19249 (ワッチョイ 7991-rYlP)
2019/10/07(月) 13:22:02.42ID:paP7R7pw0 >>177
まず考えるべきはバイナリエディタで該当ファイルを開いて、どういう構造になってるのかを確認することだよ。
まず考えるべきはバイナリエディタで該当ファイルを開いて、どういう構造になってるのかを確認することだよ。
193デフォルトの名無しさん (ワッチョイ 5ef7-+KWM)
2019/10/07(月) 19:22:21.76ID:T7P1X7tV0 >>185
Not抜けてる
Not抜けてる
194デフォルトの名無しさん (ワッチョイ b501-VLQT)
2019/10/07(月) 21:18:32.84ID:YYJJYJ590 >186 change自体が動きません
>193 マジッスカ!どこに入れたらいいですか?
>193 マジッスカ!どこに入れたらいいですか?
195デフォルトの名無しさん (オッペケ Srbd-2RUv)
2019/10/07(月) 21:59:12.85ID:DI7aKBabr >>194
ifのあと
ifのあと
196デフォルトの名無しさん (ワッチョイ 5ead-2rUB)
2019/10/08(火) 00:24:14.75ID:HDWpL7A50 〉〉184です。教えてもらった通りVLOOKUPとマッチ関数で作ってみたのですが
うまく言いません。通常のエクセルの状態ではやりたいように動作したのですができればVBAで動作できるようにしたいです、
Sub 行と列()
Dim tateya As String
Dim gouki As String
Dim gouki2 As String
Dim siriaru As String
Dim test As Worksheet
Set test = Worksheets("テスト")
tateya = test.Range("a1")
gouki = test.Range("a2")
haihhun = "-"
gouki2 = tateya & haihhun & gouki '号機
Dim siri As Worksheet
Set siri = Worksheets("シリアル管理")
Dim hanni_seru As Variant '範囲指定はバリアント型を使用する事
hanni_seru = siri.Range("D1:L39")
'VLOOKUP(列の条件,A1:D5,MATCH(行の条件,A1:D1))
siriaru = WorksheetFunction.VLookup(gouki2, hanni_seru, WorksheetFunction.Match("H1", "D1:L1"))
MsgBox siriaru
End Sub
うまく言いません。通常のエクセルの状態ではやりたいように動作したのですができればVBAで動作できるようにしたいです、
Sub 行と列()
Dim tateya As String
Dim gouki As String
Dim gouki2 As String
Dim siriaru As String
Dim test As Worksheet
Set test = Worksheets("テスト")
tateya = test.Range("a1")
gouki = test.Range("a2")
haihhun = "-"
gouki2 = tateya & haihhun & gouki '号機
Dim siri As Worksheet
Set siri = Worksheets("シリアル管理")
Dim hanni_seru As Variant '範囲指定はバリアント型を使用する事
hanni_seru = siri.Range("D1:L39")
'VLOOKUP(列の条件,A1:D5,MATCH(行の条件,A1:D1))
siriaru = WorksheetFunction.VLookup(gouki2, hanni_seru, WorksheetFunction.Match("H1", "D1:L1"))
MsgBox siriaru
End Sub
197デフォルトの名無しさん (アークセー Sxbd-2RUv)
2019/10/08(火) 02:02:42.66ID:l+0JwRkcx >>196
たぶんMatchの行条件がおかしいけど、どんな問題が起きてるのか分からないから何とも言えない
それから、haihhunとかsiriaruとかhanni_seruとか変数の名前がちょっと酷い
HyphenとかSerialとかとかCellとか英語をきちんと使う意識を持つのが上達の近道だと思う
たぶんMatchの行条件がおかしいけど、どんな問題が起きてるのか分からないから何とも言えない
それから、haihhunとかsiriaruとかhanni_seruとか変数の名前がちょっと酷い
HyphenとかSerialとかとかCellとか英語をきちんと使う意識を持つのが上達の近道だと思う
198デフォルトの名無しさん (ワッチョイ ea01-jw9j)
2019/10/08(火) 07:19:14.43ID:EnS6DjXJ0 〉〉196
その前にまず安価というのはだな・・・
その前にまず安価というのはだな・・・
199デフォルトの名無しさん (ワッチョイ 3968-G1PU)
2019/10/08(火) 07:24:09.57ID:XnwML2Ug0 別モジュールに書いたprivate subをcallする方法ってありませんか?
publicにするしか無いでしょうか
publicにするしか無いでしょうか
200デフォルトの名無しさん (アメ MM11-pTrw)
2019/10/08(火) 07:37:46.07ID:wEzHRAYiM 〉〉196です。
変数名もそんなルールが?
なんとなく日本語はよくないなーと思って自分で分かるローマ字で表記しようと思ったんですが、後ダメな理由がマッチ関数にワークシート指定してないからかと推察。後で試します。
変数名もそんなルールが?
なんとなく日本語はよくないなーと思って自分で分かるローマ字で表記しようと思ったんですが、後ダメな理由がマッチ関数にワークシート指定してないからかと推察。後で試します。
201デフォルトの名無しさん (ワントンキン MM7a-arkt)
2019/10/08(火) 07:52:03.60ID:o1U1FjwuM 無理に英語やローマ字にするくらいなら日本語でいいと思うけど
あとrangeだけじゃなくてcellsも覚えれば目的達成するんじゃないか
cellsのrowとcolumnで行と列を取得出来るからね
あとrangeだけじゃなくてcellsも覚えれば目的達成するんじゃないか
cellsのrowとcolumnで行と列を取得出来るからね
202デフォルトの名無しさん (アークセー Sxbd-2RUv)
2019/10/08(火) 08:16:32.23ID:l+0JwRkcx >>199
ただ単にマクロ一覧に表示されないようにしたいだけなら、Private SubをPublic Subに変えた上で、そのモジュールの先頭にOption Private Moduleと書き加えれば良い
Publicにするのが嫌なら、呼び出したいPrivate Subが定義されたモジュールにコールバック用の引数付きでPublic Subを定義して、呼び出したい任意のPrivate Subを引数で指定して呼び出せるようにする
それも嫌ならクラスを作ってPrivate Subをメソッド化する
どちらもコーディングや保守の工数は大して変わらない
ただ単にマクロ一覧に表示されないようにしたいだけなら、Private SubをPublic Subに変えた上で、そのモジュールの先頭にOption Private Moduleと書き加えれば良い
Publicにするのが嫌なら、呼び出したいPrivate Subが定義されたモジュールにコールバック用の引数付きでPublic Subを定義して、呼び出したい任意のPrivate Subを引数で指定して呼び出せるようにする
それも嫌ならクラスを作ってPrivate Subをメソッド化する
どちらもコーディングや保守の工数は大して変わらない
203デフォルトの名無しさん (ワッチョイ 3968-G1PU)
2019/10/08(火) 20:03:58.77ID:XnwML2Ug0 >>202
>ただ単にマクロ一覧に表示されないようにしたいだけなら、Private SubをPublic Subに変えた上で、そのモジュールの先頭にOption Private Moduleと書き加えれば良い
まさにこれです!privateにしなくても出来たんですね、勉強になりました。ありがとうございました
他の方法も勉強になりました
>ただ単にマクロ一覧に表示されないようにしたいだけなら、Private SubをPublic Subに変えた上で、そのモジュールの先頭にOption Private Moduleと書き加えれば良い
まさにこれです!privateにしなくても出来たんですね、勉強になりました。ありがとうございました
他の方法も勉強になりました
204デフォルトの名無しさん (ワッチョイ 397c-GY5J)
2019/10/08(火) 20:07:56.35ID:Uz+DmrF+0205デフォルトの名無しさん (ワッチョイ 5ead-2rUB)
2019/10/08(火) 21:30:26.55ID:HDWpL7A50 >>200
ありがとうございます。
コメントつけまくって分かるようにしてます。
まぁ詳しい人が見たらめっちゃくちゃで分かりにくいと思うのですが、
自分用で自分が分かればいいので動くようにして少しづつ改良していきます。
多分、めっちゃ不具合あります。
ありがとうございます。
コメントつけまくって分かるようにしてます。
まぁ詳しい人が見たらめっちゃくちゃで分かりにくいと思うのですが、
自分用で自分が分かればいいので動くようにして少しづつ改良していきます。
多分、めっちゃ不具合あります。
206デフォルトの名無しさん (ワッチョイ 5ead-2rUB)
2019/10/08(火) 22:01:56.51ID:HDWpL7A50 データベースから原本のシートに転記する場合表内でのループは可能ですか?
但し、実際に転記する表の上下に題名や表題があります。
例えば1行から20行での表があり繰り返すデータが21行目なったら2ページめの1行目
にするという事は可能でしょうか?
出来なさそうなのでリストボックスで見やすく作ろうかと思ったのですが、印刷用でも
作成したいのでできるのであればご教授お願いします。
上だけなら、forの頭を指定して10番目ならfor i = 10TO 最終行
で行けると思うのですが表の最後の指定がわかりません。
forをネストすればできそうですが、それでも20番目でおわる形にする感じ?
21行目を2ページ目の1行目を指定するのは難しそう
但し、実際に転記する表の上下に題名や表題があります。
例えば1行から20行での表があり繰り返すデータが21行目なったら2ページめの1行目
にするという事は可能でしょうか?
出来なさそうなのでリストボックスで見やすく作ろうかと思ったのですが、印刷用でも
作成したいのでできるのであればご教授お願いします。
上だけなら、forの頭を指定して10番目ならfor i = 10TO 最終行
で行けると思うのですが表の最後の指定がわかりません。
forをネストすればできそうですが、それでも20番目でおわる形にする感じ?
21行目を2ページ目の1行目を指定するのは難しそう
207デフォルトの名無しさん (ワッチョイ c55f-Je0l)
2019/10/08(火) 22:10:00.62ID:QtXyLjSg0 伝え方って大事だよね
208デフォルトの名無しさん (ワッチョイ 397c-GY5J)
2019/10/08(火) 22:11:56.81ID:Uz+DmrF+0 >>206
21行目になったら次の改ページ位置を貼り付け先にする
21行目になったら次の改ページ位置を貼り付け先にする
209デフォルトの名無しさん (ワッチョイ 397c-GY5J)
2019/10/08(火) 22:13:49.93ID:Uz+DmrF+0 または上下の題名をヘッダフッタに指定して改ページを気にせず貼り付ける
210デフォルトの名無しさん (ワッチョイ b501-UYl5)
2019/10/08(火) 22:46:38.31ID:IntPDsvb0 >>194
出来ました。大変ありがとう😊
出来ました。大変ありがとう😊
211デフォルトの名無しさん (ワッチョイ 9fa2-8cCB)
2019/10/10(木) 21:20:24.18ID:gS7zDweR0 たまにpowershellの話題出るから聞きたいんだけどpowershellってUWSC見たいなことできるの?
212デフォルトの名無しさん (ワッチョイ 9f79-P7q6)
2019/10/10(木) 21:36:10.47ID:LC0PLrJI0 特化してるUWSCみたいに簡単ではないけど
がんばればできる
がんばればできる
213デフォルトの名無しさん (ワッチョイ 9fda-OHYr)
2019/10/10(木) 21:48:01.84ID:5Xxw1b5M0 頑張れば何でもできるだろうな。
VBSではWindowsAPIが使えない! → 裏でこっそりエクセル起動すれば使えるじゃん。
VBAではjavascriptが使えない! → ExecuteThisJavaScript使えば出来るじゃん。
殆ど屁理屈だけど。
VBSではWindowsAPIが使えない! → 裏でこっそりエクセル起動すれば使えるじゃん。
VBAではjavascriptが使えない! → ExecuteThisJavaScript使えば出来るじゃん。
殆ど屁理屈だけど。
214デフォルトの名無しさん (ワッチョイ 9f59-Sohv)
2019/10/10(木) 22:44:29.41ID:g+4V+XU10 要は徒歩でも世界一周できますよねってこと
215デフォルトの名無しさん (ワッチョイ f768-NJTS)
2019/10/10(木) 23:00:49.96ID:0ZKFmSv+0 ジョジョ、逆に考えるんだ、『vbaの下に便利APIのExcelやAccessが付いているのさ』と考えるんだ
21649 (ワッチョイ f791-mVPP)
2019/10/11(金) 15:44:34.63ID:3jXa2BKX021749 (ワッチョイ f791-mVPP)
2019/10/11(金) 15:50:38.03ID:3jXa2BKX0 ただ、VBSでWindowsAPIは苦肉の策というか、敬遠したい気持ちもある。
まっ、VBSが最適な話なら結局使うけどね。
VBAでJavaScriptも同様だね。
こっちの方が敬遠したい。
まずはVBAだけで何とかならないかを考える。
まっ、VBSが最適な話なら結局使うけどね。
VBAでJavaScriptも同様だね。
こっちの方が敬遠したい。
まずはVBAだけで何とかならないかを考える。
218デフォルトの名無しさん (ワッチョイ 9fa2-8cCB)
2019/10/11(金) 17:59:50.09ID:l8XLJu9S0219デフォルトの名無しさん (ワッチョイ b74b-x3kW)
2019/10/11(金) 18:32:21.51ID:cTW5CNRi0 特定のアプリのウィンドウに対してキー入力するとかVBAでやってるよ
220デフォルトの名無しさん (ブーイモ MMcf-4N8v)
2019/10/11(金) 20:26:26.20ID:WXbKDhhqM Cells(1,"A")と書かず、判りにくいCells(1,1)と書くのはなぜ?
ネットの記述とか見ててもCells(1,"A")と書いてるの見たこと無い
ネットの記述とか見ててもCells(1,"A")と書いてるの見たこと無い
221デフォルトの名無しさん (ワッチョイ f768-NJTS)
2019/10/11(金) 20:52:13.81ID:zntJ+vZ40 マルチかよw
222デフォルトの名無しさん (ワッチョイ b7ce-NJTS)
2019/10/11(金) 22:18:32.49ID:thcocK/e0 はわわ〜
223デフォルトの名無しさん (アウアウエー Sadf-UHnC)
2019/10/11(金) 23:28:47.56ID:CLF8jhxua RPAは所詮VBAに勝てないか
っしゃああ
っしゃああ
224デフォルトの名無しさん (ワッチョイ 9fa2-8cCB)
2019/10/12(土) 02:44:28.24ID:o9i+oJev0 forでまわせんだろうが
個人的にrangeをなぜ使うかの方がわからん
個人的にrangeをなぜ使うかの方がわからん
225デフォルトの名無しさん (ワッチョイ 9fa2-8cCB)
2019/10/12(土) 02:45:37.39ID:o9i+oJev0 ああ、cellsで表現できるのをrangeで表現するのが解らんってことね
226デフォルトの名無しさん (ワッチョイ f768-NJTS)
2019/10/12(土) 06:05:16.65ID:ghJl2hig0 Range("B2:E6").Interior.Color = 65535
こんな場合は使うかな
見た目というかデータに影響を与えない部分はrangeの方が読みやすい、気がする
こんな場合は使うかな
見た目というかデータに影響を与えない部分はrangeの方が読みやすい、気がする
227デフォルトの名無しさん (ワッチョイ 9f01-8cCB)
2019/10/12(土) 06:55:20.10ID:aSZCz9kN0 朕も同じくだわ
228デフォルトの名無しさん (ワッチョイ f77c-h29T)
2019/10/12(土) 11:15:14.28ID:Wxq9g5aB0 Cells(1, "a")と書くならRangeを使えばいい
229デフォルトの名無しさん (スフッ Sdbf-hY6M)
2019/10/12(土) 11:19:09.64ID:cp8dvw0gd マルチする迷惑な質問者多いな…
230デフォルトの名無しさん (ブーイモ MMfb-4N8v)
2019/10/12(土) 11:58:45.65ID:6ww4xfxmM 繰り返すときCells(i, 1)よりCells(i, "A")の方が判りやすいと思うけど
231デフォルトの名無しさん (ワッチョイ f768-NJTS)
2019/10/12(土) 12:34:57.54ID:ghJl2hig0 列方向に繰り返す時はどうするの
232デフォルトの名無しさん (ブーイモ MMcf-olh0)
2019/10/12(土) 12:37:13.83ID:O9HuO9geM むしろexcel側でR1C1形式がデフォルトになれば良いのに
233デフォルトの名無しさん (ワッチョイ 9f4b-x3kW)
2019/10/12(土) 12:44:34.65ID:9l3IvWTz0 列は作りながら足したり順番変えたりする事が多いので最初からenum作って管理する
cells(i, cols.hoge)みたいにしてる
cells(i, cols.hoge)みたいにしてる
234デフォルトの名無しさん (ワッチョイ f768-NJTS)
2019/10/12(土) 12:46:15.93ID:ghJl2hig0235デフォルトの名無しさん (ワッチョイ 97da-NJTS)
2019/10/12(土) 19:24:53.26ID:E5CVP1ep0 アホか
236デフォルトの名無しさん (アークセー Sxcb-FpGY)
2019/10/12(土) 20:28:16.78ID:grx7Z1qlx 経験則から言うと、エクセルのシートを入力フォームや書類のフォーマットのように捉えてる人はRangeを使いがちで、配列やテーブルとして扱えるオブジェクトの塊だと捉えてる人はCellsを使う傾向がある
237デフォルトの名無しさん (ワッチョイ bfad-la4p)
2019/10/13(日) 00:25:27.70ID:ZLXCWom40 あるリストをユーザーフォームで絞り込んでそのユーザーフォームのリストボックスに
リスト内容を表示させたいのですがオートフィルタの表示はうまくいくってるのですがリストの表示
先がうまく表示されません。どうしたらいいでしょうか?
以下がコードです
private Sub kensaku_bo_Click()
'オートフィルタによる検索
Dim ws_kiki As Worksheet
Set ws_kiki = Worksheets("機器履歴")
Dim tateya As String '建屋番号
Dim gouki As String '号機番号
Dim gouki2 As String '建屋と号機の合計のセル
Dim haihhun As String
Dim myData As Variant
tateya = ken1.Value
gouki = ken2.Value
haihhun = "-"
gouki2 = tateya & haihhun & gouki '号機
ws_kiki.Range("A1").AutoFilter 3, gouki2
Dim lastRow As Long
With ws_kiki
lastRow = .Cells(Rows.Count, 1).End(xlUp).Row
myData = .Range(.Cells(1, 1), .Cells(Rows.Count, 12).End(xlUp)).Value
End With
With list_ken
.ColumnCount = 12
.ColumnWidths = "50;80;50;50;50;50;50;50;50;50;50;50"
.List = myData
End With End Sub
リスト内容を表示させたいのですがオートフィルタの表示はうまくいくってるのですがリストの表示
先がうまく表示されません。どうしたらいいでしょうか?
以下がコードです
private Sub kensaku_bo_Click()
'オートフィルタによる検索
Dim ws_kiki As Worksheet
Set ws_kiki = Worksheets("機器履歴")
Dim tateya As String '建屋番号
Dim gouki As String '号機番号
Dim gouki2 As String '建屋と号機の合計のセル
Dim haihhun As String
Dim myData As Variant
tateya = ken1.Value
gouki = ken2.Value
haihhun = "-"
gouki2 = tateya & haihhun & gouki '号機
ws_kiki.Range("A1").AutoFilter 3, gouki2
Dim lastRow As Long
With ws_kiki
lastRow = .Cells(Rows.Count, 1).End(xlUp).Row
myData = .Range(.Cells(1, 1), .Cells(Rows.Count, 12).End(xlUp)).Value
End With
With list_ken
.ColumnCount = 12
.ColumnWidths = "50;80;50;50;50;50;50;50;50;50;50;50"
.List = myData
End With End Sub
238デフォルトの名無しさん (ワッチョイ b7ce-NJTS)
2019/10/13(日) 04:36:36.74ID:PQpo0fQ70 変数で回す時はCells
セル位置が固定の時、範囲指定する時はRange
1行ごとにコード入力が楽な方を選んでる
セル位置が固定の時、範囲指定する時はRange
1行ごとにコード入力が楽な方を選んでる
239デフォルトの名無しさん (ワッチョイ bff7-n5Mu)
2019/10/13(日) 09:40:37.82ID:EzRorSmA0240デフォルトの名無しさん (ワッチョイ bff7-n5Mu)
2019/10/13(日) 09:49:37.23ID:EzRorSmA0 間違えたmyDataは配列か
それでもフィルター情報は乗らないね
リストボックスの.RowSourceに範囲アドレス入れて連動させる方法あるけど
これフィルターも連動したっけ?
それでもフィルター情報は乗らないね
リストボックスの.RowSourceに範囲アドレス入れて連動させる方法あるけど
これフィルターも連動したっけ?
241デフォルトの名無しさん (ワッチョイ 1fba-7XqI)
2019/10/13(日) 15:30:11.40ID:8j4dObBs0 セルC5:C17に数値が入ってます(A)
セルF5:F21に数値が入ってます (B)
セルY5:Y25に数値が入ってます (C)
AとBの数値のうちCにない数値をセルO5から順番に下に抜き出したいんです
cを配列で格納するまでは出来たのですがそれ以降がわかりません
よろしくお願いします
初心者です
セルF5:F21に数値が入ってます (B)
セルY5:Y25に数値が入ってます (C)
AとBの数値のうちCにない数値をセルO5から順番に下に抜き出したいんです
cを配列で格納するまでは出来たのですがそれ以降がわかりません
よろしくお願いします
初心者です
242デフォルトの名無しさん (ワッチョイ b74b-x3kW)
2019/10/13(日) 15:41:29.73ID:tc/0x//C0 配列を検索すればいいだけでは
243デフォルトの名無しさん (ワッチョイ 1fba-7XqI)
2019/10/13(日) 15:45:58.47ID:8j4dObBs0244デフォルトの名無しさん (スフッ Sdbf-Sohv)
2019/10/13(日) 16:03:13.56ID:TBfrTFPMd 配列よりコレクションの方が楽では
245デフォルトの名無しさん (ワッチョイ b74b-x3kW)
2019/10/13(日) 16:05:31.06ID:tc/0x//C0 for i = 0 to ubound(配列)
if 配列(i) <> 検索したい値 then
どこかに出力
end if
next
こういう感じでいいんじゃないの
if 配列(i) <> 検索したい値 then
どこかに出力
end if
next
こういう感じでいいんじゃないの
246デフォルトの名無しさん (ワッチョイ 1fba-7XqI)
2019/10/13(日) 16:45:22.08ID:8j4dObBs0247デフォルトの名無しさん (アークセー Sxcb-FpGY)
2019/10/13(日) 18:24:09.39ID:0JmSqCe7x 普通のCollectionや配列よりも、Cの値をKeyにしてDictionaryオブジェクトを作る発想の方がいいと思う
Dictionary.ExistsメソッドでKeyの存在確認ができるからコードが簡単になる
Dictionary.ExistsメソッドでKeyの存在確認ができるからコードが簡単になる
248デフォルトの名無しさん (アウアウウー Sa5b-Cvo3)
2019/10/13(日) 20:43:23.01ID:2Iz5cpana Dictionaryは平均的なVBAerには理解できないから却下
他人に理解できないもん作るんならVBAを選ぶ意味がない
他人に理解できないもん作るんならVBAを選ぶ意味がない
249デフォルトの名無しさん (ワッチョイ 9f4b-x3kW)
2019/10/13(日) 21:17:01.40ID:GzZlIE9V0 dictionary楽なのに
250デフォルトの名無しさん (ワッチョイ f768-NJTS)
2019/10/13(日) 21:32:01.32ID:z6dVpON+0 連想配列の事をdictionaryって呼ぶんだっけか
すごい便利だけど、シートあるんだからシート使った方がいいんでない?と思う
二次配列が目に見えて編集し放題とか楽ちんすぎる
すごい便利だけど、シートあるんだからシート使った方がいいんでない?と思う
二次配列が目に見えて編集し放題とか楽ちんすぎる
251デフォルトの名無しさん (アウアウエー Sadf-UHnC)
2019/10/13(日) 21:38:36.38ID:a37CwINqa みんなどうやってVBAそんなに詳しくなったの?
252デフォルトの名無しさん (ワッチョイ f77c-h29T)
2019/10/13(日) 21:44:04.10ID:exOKfr5u0 必要に迫られて作ってるうちに
253デフォルトの名無しさん (ワッチョイ 9f59-Sohv)
2019/10/13(日) 21:48:31.98ID:TUjSthkJ0 休日まで費やして2000行くらいコード書いてるけどそろそろ嫌になってきた
254デフォルトの名無しさん (ワッチョイ f768-NJTS)
2019/10/13(日) 21:50:43.69ID:z6dVpON+0 そのうち、休日に働いて会社でのんびりするようになるよ
あんまり良くないんだけど、プログラムは家じゃないと集中して掛けないんだよな
あんまり良くないんだけど、プログラムは家じゃないと集中して掛けないんだよな
255デフォルトの名無しさん (アウアウエー Sadf-UHnC)
2019/10/13(日) 21:54:03.90ID:a37CwINqa >>254
あー、すごいよくわかる
あー、すごいよくわかる
256デフォルトの名無しさん (アークセー Sxcb-FpGY)
2019/10/13(日) 22:03:41.31ID:0JmSqCe7x >>248
平均的なVBAerってのがどんな層を指してるかちょっと分からないが、Dictionaryが理解できない人ってそもそも配列やCollectionも理解できないんじゃないの?
平均的なVBAerってのがどんな層を指してるかちょっと分からないが、Dictionaryが理解できない人ってそもそも配列やCollectionも理解できないんじゃないの?
257デフォルトの名無しさん (ワッチョイ b74b-x3kW)
2019/10/13(日) 22:05:54.29ID:VDajUcWs0 dictionaryの替わりにシートを使うという発想は無かったな
258デフォルトの名無しさん (アークセー Sxcb-FpGY)
2019/10/13(日) 22:13:33.97ID:0JmSqCe7x シートが可視化された配列だってのはその通りなんだけど誰でもGUIで簡単に編集できてしまう点が逆に弱点でもある
値の読み書きだけでイベントハンドラに制御が渡るからそもそも重いし
値の読み書きだけでイベントハンドラに制御が渡るからそもそも重いし
259デフォルトの名無しさん (ワッチョイ f768-NJTS)
2019/10/13(日) 22:23:41.04ID:z6dVpON+0 >>258
まぁねぇ。その辺は考えながらうまく付き合って行きたい所
まぁねぇ。その辺は考えながらうまく付き合って行きたい所
260デフォルトの名無しさん (ワッチョイ 9fa2-8cCB)
2019/10/13(日) 22:44:44.65ID:Sc8Blp8e0 連想配列ってどういうとき便利なの?
いまいち基本書の記述じゃメリットとか使い道とかがイメージできないんだけど
いまいち基本書の記述じゃメリットとか使い道とかがイメージできないんだけど
261デフォルトの名無しさん (ワッチョイ f77c-h29T)
2019/10/13(日) 23:07:03.97ID:exOKfr5u0262デフォルトの名無しさん (アウアウウー Sa5b-8cCB)
2019/10/13(日) 23:09:26.19ID:YeAfr+Aea >>241
こういうこと?
Sub 検索()
Const COL_C As Long = 3
Const COL_F As Long = 6
Const COL_O As Long = 15
Dim nSetRow As Long
nSetRow = 5
Dim nRow As Long
For nRow = 5 To 17
If Not IsExistValue(Cells(nRow, COL_C).Value) Then
Cells(nSetRow, COL_O).Value = Cells(nRow, COL_C).Value
nSetRow = nSetRow + 1
End If
Next
For nRow = 5 To 21
If Not IsExistValue(Cells(nRow, COL_F).Value) Then
Cells(nSetRow, COL_O).Value = Cells(nRow, COL_F).Value
nSetRow = nSetRow + 1
End If
Next
End Sub
こういうこと?
Sub 検索()
Const COL_C As Long = 3
Const COL_F As Long = 6
Const COL_O As Long = 15
Dim nSetRow As Long
nSetRow = 5
Dim nRow As Long
For nRow = 5 To 17
If Not IsExistValue(Cells(nRow, COL_C).Value) Then
Cells(nSetRow, COL_O).Value = Cells(nRow, COL_C).Value
nSetRow = nSetRow + 1
End If
Next
For nRow = 5 To 21
If Not IsExistValue(Cells(nRow, COL_F).Value) Then
Cells(nSetRow, COL_O).Value = Cells(nRow, COL_F).Value
nSetRow = nSetRow + 1
End If
Next
End Sub
263デフォルトの名無しさん (アウアウウー Sa5b-8cCB)
2019/10/13(日) 23:09:42.80ID:YeAfr+Aea Function IsExistValue(ByVal pValue As Variant) As Boolean
IsExistValue = True
Const COL_Y As Long = 25
Dim nRow As Long
For nRow = 5 To 25
If Cells(nRow, COL_Y).Value = pValue Then
Exit Function
End If
Next
IsExistValue = False
End Function
IsExistValue = True
Const COL_Y As Long = 25
Dim nRow As Long
For nRow = 5 To 25
If Cells(nRow, COL_Y).Value = pValue Then
Exit Function
End If
Next
IsExistValue = False
End Function
264デフォルトの名無しさん (ワッチョイ 9fea-+Z1Z)
2019/10/13(日) 23:20:25.51ID:rkAEaYhN0 >>260
Keywordが重複できないから必ず一意なデータセットができる。
Keywordが重複できないから必ず一意なデータセットができる。
265デフォルトの名無しさん (ワッチョイ 9fe0-o74w)
2019/10/14(月) 00:48:24.78ID:2bLpiP0X0 2シートを連結する際、それぞれの各行をクラスインスタンスに代入&コレクション化してるのですが連結方法に悩んでいます
例
Personクラス(pID, 氏名, 名字プロパティ, 生年月日,...)→Persons.Add Personインスタンス, str(pID)
Diaryクラス(dID, pID, 作成日, 本文,...)→Diaries.Add Diaryインスタンス, str(dID)
'出力
Dim d as Diary
For each d in Diaries
if(存在チェック) then xxx = Persons.Item(d.pID).名字
Next d
現在上記のように回してますが、より楽に書けるor固いor保守しやすい...実装があれば教えて頂きたいです
現状はプロパティの予測表示がされないのが微妙に使いにくいのと、そもそもコレクションにおけるkeyの動作をよく分かっていません
例
Personクラス(pID, 氏名, 名字プロパティ, 生年月日,...)→Persons.Add Personインスタンス, str(pID)
Diaryクラス(dID, pID, 作成日, 本文,...)→Diaries.Add Diaryインスタンス, str(dID)
'出力
Dim d as Diary
For each d in Diaries
if(存在チェック) then xxx = Persons.Item(d.pID).名字
Next d
現在上記のように回してますが、より楽に書けるor固いor保守しやすい...実装があれば教えて頂きたいです
現状はプロパティの予測表示がされないのが微妙に使いにくいのと、そもそもコレクションにおけるkeyの動作をよく分かっていません
266デフォルトの名無しさん (ワッチョイ 9f4b-x3kW)
2019/10/14(月) 01:24:56.78ID:wVIK+1B50267デフォルトの名無しさん (ワッチョイ bf68-NJTS)
2019/10/14(月) 09:29:31.58ID:+oSE7p5I0 VBAでOPENしたファイルを引数で渡す事は出来ますか?
こんな感じで処理したいのですが、「#1」って変数では無いのでしょうか
Sub foo()
Open "TESTFILE" For Output As #1 ' Open file for output.
Call write_(#1,"content")
Close #1
End Sub
Function write_(filenumber, content)
Write filenumber, content
End Function
こんな感じで処理したいのですが、「#1」って変数では無いのでしょうか
Sub foo()
Open "TESTFILE" For Output As #1 ' Open file for output.
Call write_(#1,"content")
Close #1
End Sub
Function write_(filenumber, content)
Write filenumber, content
End Function
268デフォルトの名無しさん (ワッチョイ 9fda-OHYr)
2019/10/14(月) 09:38:41.74ID:LU4QFSeP0269デフォルトの名無しさん (アウアウウー Sa5b-8cCB)
2019/10/14(月) 12:22:02.07ID:UlmNQm1da >>267
ファイル番号は1-255の範囲で常に固定値でやるなら引数で渡さずにどこも#1でいいかと思う
FreeFileって関数があってこれは番号を任意に付番してくれるので
たとえば
Dim nNo as Integer
nNo = FreeFile
Open .... #nNo
って書くこともできる
このnNoを引数に指定してもいいかもね
ファイル番号は1-255の範囲で常に固定値でやるなら引数で渡さずにどこも#1でいいかと思う
FreeFileって関数があってこれは番号を任意に付番してくれるので
たとえば
Dim nNo as Integer
nNo = FreeFile
Open .... #nNo
って書くこともできる
このnNoを引数に指定してもいいかもね
270デフォルトの名無しさん (ワッチョイ bf68-NJTS)
2019/10/14(月) 12:27:42.70ID:+oSE7p5I0 >>269
行けました!ありがとうございます
ナンバー記号「#」の詳細ってMSDNかどこかにありますか?
Sub foo()
Dim nNo As Integer
nNo = FreeFile
Open "TESTFILE" For Output As nNo ' Open file for output.
Call write_(nNo, "conteaasnt")
Close #1
End Sub
Function write_(nNo, content)
Write #nNo, content
End Function
行けました!ありがとうございます
ナンバー記号「#」の詳細ってMSDNかどこかにありますか?
Sub foo()
Dim nNo As Integer
nNo = FreeFile
Open "TESTFILE" For Output As nNo ' Open file for output.
Call write_(nNo, "conteaasnt")
Close #1
End Sub
Function write_(nNo, content)
Write #nNo, content
End Function
271デフォルトの名無しさん (アークセー Sxcb-FpGY)
2019/10/14(月) 14:39:32.50ID:aC+4aHxsx >>265
Persons、Diariesをコレクションにしている理由は、「Person、Diaryという2つのカスタムクラスの集合オブジェクト」という意味論以外に、何か実装的な理由はあるのかな?
例えば、2つのコレクションクラスに格納するデータの型が一様でないからCollectionじゃないとリスト化できないとか、多態のためにCollectionクラスをインターフェース継承させているとか
そういう事情がないならば、Keyの存在確認手段を持たないCollectionクラスではなく、Keyの存在確認を行うExistsメソッドを持つDictionaryを使うのが実装的には楽だと思う
pID・Person、pID・Diaryの二種類のペアに対応するDictionaryを個別に作ってpIDでリレーション確認するイメージ(各DictionaryではpIDをKeyとしておく)
そもそもRemoveやAddといった基本的な機能はCollectionとDictionaryとで共通しているし、Dictionaryの方が動作も早いしね
Persons、Diariesをコレクションにしている理由は、「Person、Diaryという2つのカスタムクラスの集合オブジェクト」という意味論以外に、何か実装的な理由はあるのかな?
例えば、2つのコレクションクラスに格納するデータの型が一様でないからCollectionじゃないとリスト化できないとか、多態のためにCollectionクラスをインターフェース継承させているとか
そういう事情がないならば、Keyの存在確認手段を持たないCollectionクラスではなく、Keyの存在確認を行うExistsメソッドを持つDictionaryを使うのが実装的には楽だと思う
pID・Person、pID・Diaryの二種類のペアに対応するDictionaryを個別に作ってpIDでリレーション確認するイメージ(各DictionaryではpIDをKeyとしておく)
そもそもRemoveやAddといった基本的な機能はCollectionとDictionaryとで共通しているし、Dictionaryの方が動作も早いしね
272デフォルトの名無しさん (アウアウウー Sa5b-8cCB)
2019/10/14(月) 14:43:11.09ID:ghhHmrX1a273デフォルトの名無しさん (スプッッ Sddf-NJTS)
2019/10/14(月) 15:37:37.47ID:g9W5x9G3d 言語リファレンスでも#は省略可能となっているだけで、説明はどこにも見当たらない
古いBASICとの互換性で残してあるだけだと思う
古いBASICとの互換性で残してあるだけだと思う
274デフォルトの名無しさん (ワッチョイ bf68-NJTS)
2019/10/14(月) 15:51:24.60ID:+oSE7p5I0 >>272-273
あれ、じゃあなんでしょうねこれ
コンソールで
?#1
ではエラーになるので、ただの数値ではなくなるみたい
#1=2
も出来ない。なんとなくリテラルか参照っぽいですが、何でしょうね
openなどの時にしか使えないのでしょうか
あれ、じゃあなんでしょうねこれ
コンソールで
?#1
ではエラーになるので、ただの数値ではなくなるみたい
#1=2
も出来ない。なんとなくリテラルか参照っぽいですが、何でしょうね
openなどの時にしか使えないのでしょうか
275デフォルトの名無しさん (ワッチョイ 9fe0-o74w)
2019/10/14(月) 15:54:12.83ID:2bLpiP0X0 >>271
ありがとうございます
コレクションを選択した理由は特にありません
(あえて挙げるなら、コレクションにまとめるリファレンスが最初に目に付いた です)
>pID・Person、pID・Diaryの二種類のペアに対応するDictionaryを個別に作ってpIDでリレーション確認するイメージ(各DictionaryではpIDをKeyとしておく)
言葉足らずですみません。Diaryクラス側ではpIDが重複しdIDが主キーとなるので、一意に取得できません。(この認識も間違っていたらすみません...)
エラー処理がExistsで済むのは明確なメリットですね。Collectionでは、調べた限りではOnErrorGoToで飛ばす方法しか見つけられませんでした
ひとまず、Diary側のループで取得したpIDでPersonDictionaryにExistsをかける 方法を試してみようと思います。
ありがとうございます
コレクションを選択した理由は特にありません
(あえて挙げるなら、コレクションにまとめるリファレンスが最初に目に付いた です)
>pID・Person、pID・Diaryの二種類のペアに対応するDictionaryを個別に作ってpIDでリレーション確認するイメージ(各DictionaryではpIDをKeyとしておく)
言葉足らずですみません。Diaryクラス側ではpIDが重複しdIDが主キーとなるので、一意に取得できません。(この認識も間違っていたらすみません...)
エラー処理がExistsで済むのは明確なメリットですね。Collectionでは、調べた限りではOnErrorGoToで飛ばす方法しか見つけられませんでした
ひとまず、Diary側のループで取得したpIDでPersonDictionaryにExistsをかける 方法を試してみようと思います。
276デフォルトの名無しさん (ワッチョイ f77c-h29T)
2019/10/14(月) 16:00:13.52ID:pMfnFO5+0 >>274
#1の中身は文字列じゃないよ
#1の中身は文字列じゃないよ
277デフォルトの名無しさん (ワッチョイ 9f01-Kkga)
2019/10/14(月) 16:32:13.39ID:9SF/tSaH0278デフォルトの名無しさん (アークセー Sxcb-FpGY)
2019/10/14(月) 17:26:42.75ID:J7mWSp9Bx >>275
複数のDiaryインスタンスが共通のpIDを持つならば、連結を二重化したらいいんじゃないだろうか
まずpIDをキーとするDiary用のDictionaryをまず作っておいて、
同じpIDを持つDiaryインスタンスをまとめたDictionaryかCollectionをItemとして持たせる形にすればいいと思う
構造的に表すと
(Key[i] = pID, Item[i] = (Key[j] = dID, Item[j] = Diary))
みたいな感じ
複数のDiaryインスタンスが共通のpIDを持つならば、連結を二重化したらいいんじゃないだろうか
まずpIDをキーとするDiary用のDictionaryをまず作っておいて、
同じpIDを持つDiaryインスタンスをまとめたDictionaryかCollectionをItemとして持たせる形にすればいいと思う
構造的に表すと
(Key[i] = pID, Item[i] = (Key[j] = dID, Item[j] = Diary))
みたいな感じ
279デフォルトの名無しさん (ワッチョイ bfad-la4p)
2019/10/14(月) 22:48:09.17ID:PwgP8aUB0 VBAで表からその左の行を検索したいのですがどうしたらいいでしょうか?
Dim rng As Range
Set rng = ws_siriaru.Range("D:L").Find(ken4, LookAt:=xlWhole)
If rng Is Nothing Then rng
MsgBox ""ない
Exit Sub
End If
siriaru = Range("C" & rng.Row).Value
gouki = siriaru
label_siri = gouki
では表示はされるのですがうまくいきませんでした。
Dim rng As Range
Set rng = ws_siriaru.Range("D:L").Find(ken4, LookAt:=xlWhole)
If rng Is Nothing Then rng
MsgBox ""ない
Exit Sub
End If
siriaru = Range("C" & rng.Row).Value
gouki = siriaru
label_siri = gouki
では表示はされるのですがうまくいきませんでした。
280デフォルトの名無しさん (ワッチョイ 9fe0-o74w)
2019/10/14(月) 23:16:54.59ID:2bLpiP0X0281デフォルトの名無しさん (ワッチョイ f77c-h29T)
2019/10/15(火) 00:00:45.56ID:Nq3iWAMG0 >>279
説明する時「うまくいく」とか「うまくいかない」という単語は使ってはいけない
説明する時「うまくいく」とか「うまくいかない」という単語は使ってはいけない
282デフォルトの名無しさん (ワッチョイ 9fe0-o74w)
2019/10/15(火) 00:02:27.41ID:0b9bW6T40 >>279
どういった表示がされて、実際に欲しい情報とどこが違うでしょうか?
Range("D:L")をken4で完全一致検索をかけ、最初に見つかったセルの行番号を取得
その行のC列セルの値をsiriaruに代入
という点ではプログラムに間違いはありません
どういった表示がされて、実際に欲しい情報とどこが違うでしょうか?
Range("D:L")をken4で完全一致検索をかけ、最初に見つかったセルの行番号を取得
その行のC列セルの値をsiriaruに代入
という点ではプログラムに間違いはありません
283デフォルトの名無しさん (アークセー Sxcb-FpGY)
2019/10/15(火) 00:30:22.92ID:i09LlRYux >>280
その通り
そのようにすれば、Diaryのインスタンス集合全体に対してpIDの存在確認をすることも出来るし、pID, dIDという2つのプロパティ値を使って目的のDiaryオブジェクトを取り出すこともできる
その通り
そのようにすれば、Diaryのインスタンス集合全体に対してpIDの存在確認をすることも出来るし、pID, dIDという2つのプロパティ値を使って目的のDiaryオブジェクトを取り出すこともできる
284デフォルトの名無しさん (オッペケ Srcb-FpGY)
2019/10/15(火) 04:19:47.75ID:/i2LKWgur >>279
siriaru=ws_siriaru.Range("C" & rng.Row).Value
siriaru=ws_siriaru.Range("C" & rng.Row).Value
285デフォルトの名無しさん (アークセー Sxcb-FpGY)
2019/10/15(火) 08:12:41.36ID:/HnZFUztx >>279
siriaruに値を代入するときに参照しているシートがシリアルのシートじゃなくて別シートになってると思う
siriaru = ws_siriaru.Range("C" & rng.Row).Value
に変えたらうまくいくのでは
siriaruに値を代入するときに参照しているシートがシリアルのシートじゃなくて別シートになってると思う
siriaru = ws_siriaru.Range("C" & rng.Row).Value
に変えたらうまくいくのでは
286デフォルトの名無しさん (アウアウウー Sa5b-ueyd)
2019/10/15(火) 18:45:11.44ID:opa9jcIha >>270
close もopenと同じ番号のnNo によ
close もopenと同じ番号のnNo によ
287デフォルトの名無しさん (オッペケ Srcb-jOzB)
2019/10/15(火) 21:12:27.40ID:OH7oWYO6r >>236
最初からVariantに入れるのが正解では?
最初からVariantに入れるのが正解では?
288デフォルトの名無しさん (アークセー Sxcb-FpGY)
2019/10/15(火) 21:28:52.40ID:NB8YI5GFx >>287
Variant型は便利だけどRangeオブジェクトを突っ込むためだけの変数で使用するにはねぇ
実際のデータ型を明示しないぶんコードが読みにくくなるしコーティング時にインテリセンスも利かなかったりとデメリットの方が目立つ
実行時エラーの原因って感じ
Variant型は便利だけどRangeオブジェクトを突っ込むためだけの変数で使用するにはねぇ
実際のデータ型を明示しないぶんコードが読みにくくなるしコーティング時にインテリセンスも利かなかったりとデメリットの方が目立つ
実行時エラーの原因って感じ
289デフォルトの名無しさん (ワッチョイ bfad-la4p)
2019/10/15(火) 22:36:34.14ID:LwOOuMgG0 リストの表示について
以下の表示の際最終行後ろのセルが空白だった場合最終行が表示されません。
なぜでしょうか?
LastRowではA列の最終行を指定しているので間違いではないと思うのですが
最終行のみ全てのセルに数値を入れていないと最終行に反映されないみたいです;。
With ws_kiki
LastRow = .Cells(Rows.Count, 1).End(xlUp).Row
myData = .Range(.Cells(1, 1), .Cells(Rows.Count, 13).End(xlUp)).Value
End With
With list_ken
.ColumnCount = 13
.ColumnWidths = "20;60;50;50;50;70;70;50;50;50;50;50"
.List = myData
以下の表示の際最終行後ろのセルが空白だった場合最終行が表示されません。
なぜでしょうか?
LastRowではA列の最終行を指定しているので間違いではないと思うのですが
最終行のみ全てのセルに数値を入れていないと最終行に反映されないみたいです;。
With ws_kiki
LastRow = .Cells(Rows.Count, 1).End(xlUp).Row
myData = .Range(.Cells(1, 1), .Cells(Rows.Count, 13).End(xlUp)).Value
End With
With list_ken
.ColumnCount = 13
.ColumnWidths = "20;60;50;50;50;70;70;50;50;50;50;50"
.List = myData
290デフォルトの名無しさん (ワッチョイ f77c-h29T)
2019/10/15(火) 22:58:43.53ID:Nq3iWAMG0 >>289
M列で値が入ってる一番下のセルまでが範囲のようだが
M列で値が入ってる一番下のセルまでが範囲のようだが
291デフォルトの名無しさん (アークセー Sxcb-FpGY)
2019/10/15(火) 23:33:50.79ID:NB8YI5GFx >>289
あなたsiriaruの人でしょ
もういい加減お金払って誰かに教えてもらうか、MSDNのVBAのリファレンスを読み込んできちんと勉強すべきだとおもうよ
会社で使ってるマクロのコードベタ貼りしてるのも本当に宜しくない
今回の問題は、せっかくLastRowにA列の使用セルの最終行の行インデックスを格納しているのに、myDataに入れる値のセル範囲指定でそのLastRowの値を使っていないことが原因でしょ
自分の頭をちゃんと使って書いてる?
myData = .Range(.Cells(1, 1), .Cells(LastRow, 13)).Value
と書き直せば終わり
あなたsiriaruの人でしょ
もういい加減お金払って誰かに教えてもらうか、MSDNのVBAのリファレンスを読み込んできちんと勉強すべきだとおもうよ
会社で使ってるマクロのコードベタ貼りしてるのも本当に宜しくない
今回の問題は、せっかくLastRowにA列の使用セルの最終行の行インデックスを格納しているのに、myDataに入れる値のセル範囲指定でそのLastRowの値を使っていないことが原因でしょ
自分の頭をちゃんと使って書いてる?
myData = .Range(.Cells(1, 1), .Cells(LastRow, 13)).Value
と書き直せば終わり
292デフォルトの名無しさん (ワッチョイ f77c-h29T)
2019/10/16(水) 00:02:02.46ID:TVv1yadl0 この人の問題は質問内容よりも質問文が意味不明なこと
状況を全く何も知らない相手に説明するということを考えながら質問文を書くようにしよう
状況を全く何も知らない相手に説明するということを考えながら質問文を書くようにしよう
293デフォルトの名無しさん (アークセー Sxcb-FpGY)
2019/10/16(水) 00:19:19.45ID:GI0GqC4Qx こういう構造的思考力のない人がコピペ&コピペで作り上げた野良マクロが企業の負債になっていくんだよね
294デフォルトの名無しさん (ワッチョイ 9f4b-x3kW)
2019/10/16(水) 00:30:12.53ID:4U9etGee0 ワークシートのスクリーンショットとか図で説明してもらわないと訳がわからない
295デフォルトの名無しさん (ワッチョイ 9f4f-aOdU)
2019/10/16(水) 07:23:15.57ID:Qp+et4KT0 .Net系もやってる人に質問です
列挙体に属性付けて指定すると数値の他に定義した文字列返す方法があると思うんですけど
アレをVBAで行う方法は有りますか?
Constで定義すれば出来ないことは無いんですがなんかダサくて・・・
列挙体に属性付けて指定すると数値の他に定義した文字列返す方法があると思うんですけど
アレをVBAで行う方法は有りますか?
Constで定義すれば出来ないことは無いんですがなんかダサくて・・・
296デフォルトの名無しさん (アークセー Sxcb-FpGY)
2019/10/16(水) 08:23:24.91ID:GI0GqC4Qx >>295
構造体配列とかクラスとかで擬似的に再現するしかないんじゃないの
構造体配列とかクラスとかで擬似的に再現するしかないんじゃないの
297デフォルトの名無しさん (アウアウウー Sa5b-Cvo3)
2019/10/16(水) 08:32:09.52ID:M09TXdK2a298デフォルトの名無しさん (ドコグロ MM8b-Kkga)
2019/10/16(水) 12:35:11.58ID:IY04c/q/M299295 (ササクッテロ Spcb-aOdU)
2019/10/16(水) 12:54:37.89ID:swoRisr+p >>296
そのためにクラスを作るとVBAの場合はひとクラス1モジュールファイルを切らないといけないし、
フォルダ分けも出来ないので、クラスを作る方法は後々クラスファイルが煩雑になる可能性があるのでやめておきます。
構造体や配列を使うのは少し大掛かりな気もしますが、お陰で何となくイメージがわきました。
DictionaryとかCollectionとかのValueペアのオブジェクトを使って、key側にenumで使用している番号、
Value側に文字列を設定して、enumに紐付けてやるような感じでやろうかなと。
ただ、修正が入るときに手間が掛かるようだとあまり意味がないのでその辺の構成は気をつけて作るような
感じですかね。ありがとうございました。
>>297
どんな言語だろうと自分なりに構成を考えて作っていくのは大事だと思いますよ。
今回の件は無理して作る程のものではありませんが
きちんと部品化しておけばまた違った局面で使うことが出来るので、
自分のためにも、引き継ぐ人のためにも大事だと思います。それはどの言語でも同じでしょう。
そのためにクラスを作るとVBAの場合はひとクラス1モジュールファイルを切らないといけないし、
フォルダ分けも出来ないので、クラスを作る方法は後々クラスファイルが煩雑になる可能性があるのでやめておきます。
構造体や配列を使うのは少し大掛かりな気もしますが、お陰で何となくイメージがわきました。
DictionaryとかCollectionとかのValueペアのオブジェクトを使って、key側にenumで使用している番号、
Value側に文字列を設定して、enumに紐付けてやるような感じでやろうかなと。
ただ、修正が入るときに手間が掛かるようだとあまり意味がないのでその辺の構成は気をつけて作るような
感じですかね。ありがとうございました。
>>297
どんな言語だろうと自分なりに構成を考えて作っていくのは大事だと思いますよ。
今回の件は無理して作る程のものではありませんが
きちんと部品化しておけばまた違った局面で使うことが出来るので、
自分のためにも、引き継ぐ人のためにも大事だと思います。それはどの言語でも同じでしょう。
300デフォルトの名無しさん (ドコグロ MM9b-Cvo3)
2019/10/16(水) 13:35:11.75ID:QJqyol2eM 引き継ぎを考えるなら郷に入れば郷に従えで普通にプレーンに書いた方がいい
VBAに限ったことではないけど、変なオナニーされるのが一番迷惑なんだよ
VBAに限ったことではないけど、変なオナニーされるのが一番迷惑なんだよ
301デフォルトの名無しさん (アウアウエー Sadf-tJKS)
2019/10/16(水) 18:05:45.54ID:vKUJ5JTra >>297
なんでここに居るん?
なんでここに居るん?
302デフォルトの名無しさん (アウアウウー Sa5b-ueyd)
2019/10/16(水) 18:50:39.66ID:QVKO1shPa >>295
ダサくてもそれが今の実力だからな
ダサくてもそれが今の実力だからな
303デフォルトの名無しさん (ワッチョイ 9fda-OHYr)
2019/10/16(水) 19:41:40.73ID:3AmZTcsu0 >>295
それは.NetでExcelを動かせばいいんじゃ・・。
それは.NetでExcelを動かせばいいんじゃ・・。
304デフォルトの名無しさん (アークセー Sxcb-FpGY)
2019/10/16(水) 22:11:30.10ID:Y2Xm51x3x >>299
値のペアを返す参照構造を作りたいんだったらワークシートを素直に使ってハッシュテーブルで運用した方がメンテ工数が少ないのでは
ワークシートはGUI化された多次元配列なのでね
セルの値の読み書きでイベントハンドラに制御が渡るのが嫌なら別だが
値のペアを返す参照構造を作りたいんだったらワークシートを素直に使ってハッシュテーブルで運用した方がメンテ工数が少ないのでは
ワークシートはGUI化された多次元配列なのでね
セルの値の読み書きでイベントハンドラに制御が渡るのが嫌なら別だが
305デフォルトの名無しさん (ワッチョイ 5701-TO0X)
2019/10/16(水) 22:19:50.46ID:IiLmkjOX0 フィルタされたデータをシート上で複数繋がった状態で選択したとする。その場合にそれら『のみ』を取得することはできるんだろか?教えていただきたいです。
バージョンはexcel2016です。
例)
以下がフィルタされたセル。
A1←選択
A4←選択
A5
上の場合にA1とA4のみを取得する。A2とA3は取得しない。
バージョンはexcel2016です。
例)
以下がフィルタされたセル。
A1←選択
A4←選択
A5
上の場合にA1とA4のみを取得する。A2とA3は取得しない。
306デフォルトの名無しさん (アークセー Sxcb-FpGY)
2019/10/16(水) 22:43:21.53ID:Y2Xm51x3x フィルタ抽出されたセル範囲だけを取得したいなら、
Range("A1:A5").SpecialCells(xlCellTypeVisible).Select
の一行で終わると思う
Range.SpecialCellsプロパティが可視セルだけを返すよう、引数に列挙定数xlCellTypeVisibleを渡せばいい
Range("A1:A5")のフィルタ範囲は必要に応じて変えてね
Range("A1:A5").SpecialCells(xlCellTypeVisible).Select
の一行で終わると思う
Range.SpecialCellsプロパティが可視セルだけを返すよう、引数に列挙定数xlCellTypeVisibleを渡せばいい
Range("A1:A5")のフィルタ範囲は必要に応じて変えてね
307デフォルトの名無しさん (ワッチョイ bfad-la4p)
2019/10/16(水) 23:52:50.60ID:e5YHiPLP0 >>289です。
わぉ!辛辣ですね。こちらで聞いて大分やりたいことが出来ましたので
後は自分で考えていきます。
参考書を聞きかじってインターネットからまるまるパクったコードをデバックしまくって改造
していきます。
ちなみに今回のコードは
LastRow = .Cells(Rows.Count, 1).End(xlUp).Row
myData = .Range(.Cells(1, 1), .Cells(Rows.Count, 13).End(xlUp)).Value
これが正しいコードでした。
myData = .Range(.Cells(LastRow, 1), .Cells(1, 13).End(xlUp)).Value
最終列の最終行を取得してたのでそこが空白だと最終列が反映されないことが判明しました
わぉ!辛辣ですね。こちらで聞いて大分やりたいことが出来ましたので
後は自分で考えていきます。
参考書を聞きかじってインターネットからまるまるパクったコードをデバックしまくって改造
していきます。
ちなみに今回のコードは
LastRow = .Cells(Rows.Count, 1).End(xlUp).Row
myData = .Range(.Cells(1, 1), .Cells(Rows.Count, 13).End(xlUp)).Value
これが正しいコードでした。
myData = .Range(.Cells(LastRow, 1), .Cells(1, 13).End(xlUp)).Value
最終列の最終行を取得してたのでそこが空白だと最終列が反映されないことが判明しました
308デフォルトの名無しさん (ワッチョイ 237c-HAen)
2019/10/17(木) 01:09:44.53ID:QyNdzX/10 >>307
間違ってるけど…
間違ってるけど…
309デフォルトの名無しさん (アークセー Sx47-vS/Z)
2019/10/17(木) 01:12:20.23ID:cDk85Tz1x >>307
読んでて頭痛のするような酷い文章だな
デバックじゃなくてデバッグだろ
しかも単なるコード改変のことをデバッグとか言ってるしさ
本気でデバッグしなきゃならないときにスキルのないこういうコピペコーダーは何の役にも立たないのに
会社の資産であるコードをこんな掲示板に晒しといて何やってんだか
読んでて頭痛のするような酷い文章だな
デバックじゃなくてデバッグだろ
しかも単なるコード改変のことをデバッグとか言ってるしさ
本気でデバッグしなきゃならないときにスキルのないこういうコピペコーダーは何の役にも立たないのに
会社の資産であるコードをこんな掲示板に晒しといて何やってんだか
310デフォルトの名無しさん (アークセー Sx47-vS/Z)
2019/10/17(木) 01:14:14.21ID:cDk85Tz1x >>307
しかもコード間違ってるし
しかもコード間違ってるし
311デフォルトの名無しさん (ワッチョイ 1ead-b2ak)
2019/10/17(木) 01:19:38.31ID:KClIintl0312デフォルトの名無しさん (アークセー Sx47-vS/Z)
2019/10/17(木) 01:23:29.50ID:cDk85Tz1x313デフォルトの名無しさん (ワッチョイ 237c-HAen)
2019/10/17(木) 01:26:24.43ID:QyNdzX/10 インターネットからまるまるパクることを1から自分で作るとは言わない
314デフォルトの名無しさん (アークセー Sx47-vS/Z)
2019/10/17(木) 01:28:05.18ID:cDk85Tz1x 控え目に言ってアホだよな
315デフォルトの名無しさん (アウアウウー Sa43-pYNj)
2019/10/17(木) 07:12:10.84ID:f3ZcAy7Ha vbaの話で別の言語とか出してマウント取りたい人って何なんだろうね
職場の同僚も大変そうw
職場の同僚も大変そうw
316デフォルトの名無しさん (アークセー Sx47-vS/Z)
2019/10/17(木) 07:30:47.90ID:cDk85Tz1x 何か心に刺さったのかな?
他言語持ち出されたときにマウント取られたと思うのは大抵そう受け取る側に問題があるぞ
他言語持ち出されたときにマウント取られたと思うのは大抵そう受け取る側に問題があるぞ
317デフォルトの名無しさん (ササクッテロ Sp47-F9Df)
2019/10/17(木) 08:03:49.72ID:p8i0Yvjup318デフォルトの名無しさん (ドコグロ MM32-i14O)
2019/10/17(木) 08:25:30.37ID:kDxfJkPvM 前提もなしに>>312みたいなこと書くやつは要らんっていう話だろ
319デフォルトの名無しさん (ワントンキン MM97-+Ykt)
2019/10/17(木) 08:36:06.38ID:GRl5SZlQM 結局なんらかの形で表データを閲覧するならエクセルで閉じた方が楽だなと思う
320デフォルトの名無しさん (ワッチョイ e36d-S3Tg)
2019/10/17(木) 10:14:17.57ID:V7Fv8DAn0 結局、表入力が簡単で確実なんだよな
なんつか心配がいらない
処理はpythonのほうが楽だがエクセル
ファイルのみで管理できるってことも含め
総合的にはVBAいいんだよね 雑な意味で
データと処理が一つにまとまってるんで
オブジャクト思考的ってか
なんつか心配がいらない
処理はpythonのほうが楽だがエクセル
ファイルのみで管理できるってことも含め
総合的にはVBAいいんだよね 雑な意味で
データと処理が一つにまとまってるんで
オブジャクト思考的ってか
321デフォルトの名無しさん (ワッチョイ 16da-S3Tg)
2019/10/17(木) 10:31:18.04ID:fkyJRw1v0 発音に「ャ」の要素はないかと。
322デフォルトの名無しさん (ワッチョイ e36d-S3Tg)
2019/10/17(木) 10:39:10.24ID:V7Fv8DAn0 API呼び出せるんだから
大概のことはVBAでどうにか
なってしまうんだよな。小さい会社、つまり
会社の9割以上はVBA程度で
十分なんだよな まあVBAがおもちゃで
なくてはならないって立場は分からんでもないがw
大概のことはVBAでどうにか
なってしまうんだよな。小さい会社、つまり
会社の9割以上はVBA程度で
十分なんだよな まあVBAがおもちゃで
なくてはならないって立場は分からんでもないがw
323デフォルトの名無しさん (ワッチョイ 2701-Maid)
2019/10/17(木) 15:37:20.74ID:e7g1u0+T0 エクセルの表から始まる作業ならVBAがいいとおもうよ
例えば客からの電話注文をエクセルに一度まとめていて、それを管理画面に反映させる作業とか・・・
スクリプトを動かす必要のないサイトならブラウザ開かずにボタンポチで完了するし
(いつもちゃんと登録されてるのか不安がられるが)
例えば客からの電話注文をエクセルに一度まとめていて、それを管理画面に反映させる作業とか・・・
スクリプトを動かす必要のないサイトならブラウザ開かずにボタンポチで完了するし
(いつもちゃんと登録されてるのか不安がられるが)
324デフォルトの名無しさん (ドコグロ MMea-tIsl)
2019/10/17(木) 16:07:50.37ID:gr44XWYWM 俺ならそういうのはGoogle Spreadsheet使うかな
一旦ローカルに置くのは無駄
一旦ローカルに置くのは無駄
325デフォルトの名無しさん (ワッチョイ 2701-Maid)
2019/10/17(木) 16:46:25.92ID:e7g1u0+T0 >>324
みんなエクセルで管理したがるので
みんなエクセルで管理したがるので
326デフォルトの名無しさん (ササクッテロ Sp47-F9Df)
2019/10/17(木) 18:09:32.12ID:p8i0Yvjup まぁVBAやって育ってくるとその内
VB.Netとかやるようになって
Web系を扱うようになると
ASP.Netとかやる機会も出て来るから
SQLと同じようにHTMLとかCSSとか
JavaScriptとか必要に迫られて
片手間で覚えるようになるから大丈夫。
別に今のままで良ければそのまま
VBAやってればいいわけだし。
VB.Netとかやるようになって
Web系を扱うようになると
ASP.Netとかやる機会も出て来るから
SQLと同じようにHTMLとかCSSとか
JavaScriptとか必要に迫られて
片手間で覚えるようになるから大丈夫。
別に今のままで良ければそのまま
VBAやってればいいわけだし。
327デフォルトの名無しさん (ワッチョイ 9f94-vCPd)
2019/10/17(木) 19:58:00.62ID:EDPspb6d0 VBAの最大のデメリットは何でもVBAでやろうとする脳になる事
こんな化石のような言語でやるのは苦行そのもの
今更覚える意味すらない
こんな化石のような言語でやるのは苦行そのもの
今更覚える意味すらない
328デフォルトの名無しさん (ワッチョイ 9242-U7Hu)
2019/10/17(木) 20:00:11.81ID:2ydjDz1a0 そんな意味のないもののスレをわざわざ見に来る意味はあるの
329デフォルトの名無しさん (ワッチョイ 9ec6-GDtP)
2019/10/17(木) 20:41:45.44ID:j32AuqLC0330デフォルトの名無しさん (ワッチョイ f335-S3Tg)
2019/10/17(木) 20:55:38.52ID:a6vhi3mO0 時代遅れ感があるのと、どう書くべきかが分かりにくいのと、エラーメッセージがクソなのを除けばそこまででもないな
シートモジュールやブックモジュールが邪魔すぎる。標準モジュールだけで良かった
そしてエラーメッセージの「修正:式」はあまりに不親切。ここはアップデートかけてくれてもいいのに
シートモジュールやブックモジュールが邪魔すぎる。標準モジュールだけで良かった
そしてエラーメッセージの「修正:式」はあまりに不親切。ここはアップデートかけてくれてもいいのに
331デフォルトの名無しさん (アウアウウー Sa43-hJjz)
2019/10/17(木) 21:02:24.20ID:9rn0DJ5qa 他の言語と比較すればマトモだと思う
332デフォルトの名無しさん (ワッチョイ 92da-GDtP)
2019/10/17(木) 21:18:35.64ID:uSN2w5EG0 >どう書くべきかが分かりにくいのと
それは言語の問題じゃない。
英語の文法はわかりにくい → そりゃお前が日本人だからそう思うだけだろ!
日本語の文法はわかりにくい → そりゃお前がアメリカ人だからそう思うだけだろ!
それは言語の問題じゃない。
英語の文法はわかりにくい → そりゃお前が日本人だからそう思うだけだろ!
日本語の文法はわかりにくい → そりゃお前がアメリカ人だからそう思うだけだろ!
333デフォルトの名無しさん (ワッチョイ f335-S3Tg)
2019/10/17(木) 21:22:30.75ID:a6vhi3mO0 出ました定義したがりw
334デフォルトの名無しさん (ワッチョイ 92da-GDtP)
2019/10/17(木) 22:03:59.43ID:uSN2w5EG0335デフォルトの名無しさん (アークセー Sx47-vS/Z)
2019/10/17(木) 22:53:38.34ID:lelQayoPx シートモジュールとブックモジュールはただのクラスモジュールだからなぁ
コンストラクタとデストラクタがないぶんシートモジュールだけが特殊だが
コンストラクタとデストラクタがないぶんシートモジュールだけが特殊だが
336デフォルトの名無しさん (ワッチョイ f335-S3Tg)
2019/10/17(木) 23:08:12.09ID:a6vhi3mO0 そう、オブジェクトが何か分かっていれば何の問題もない
しかし現実問題、Excelを使うのは一般事務。setっていつ使うのかなかなか理解できない層が中心なのだ
しかし現実問題、Excelを使うのは一般事務。setっていつ使うのかなかなか理解できない層が中心なのだ
337デフォルトの名無しさん (アークセー Sx47-vS/Z)
2019/10/17(木) 23:49:25.80ID:lelQayoPx implementsステートメントで組み込みのワークシートオブジェクトのインターフェースを継承すればシート用モジュールになります、って感じの仕組みならよかったよな
ユーザー定義クラスだって属性宣言を先頭に持って来ればクラス用モジュールになりますって感じの扱いで良かったし
ユーザー定義クラスだって属性宣言を先頭に持って来ればクラス用モジュールになりますって感じの扱いで良かったし
338デフォルトの名無しさん (ワッチョイ de10-u2an)
2019/10/18(金) 00:09:11.06ID:RulO09Tc0 オマイラのスーパーテクを俺に継承してくれや。
339デフォルトの名無しさん (アウアウウー Sa43-tIsl)
2019/10/18(金) 01:12:13.81ID:Kn6PgWdna340デフォルトの名無しさん (アークセー Sx47-vS/Z)
2019/10/18(金) 01:29:19.13ID:sk0uHZY+x PowerQueryとかPowerPivotとか標準的なExcelの組み込み機能で出来る作業をVBAでやってるのを見るけどああいうのも時間の無駄だわな
341デフォルトの名無しさん (ワッチョイ f335-S3Tg)
2019/10/18(金) 06:28:43.63ID:rwfK/g890 vbaで何でも出来るから全部vbaでやる・・・それがシンプルでカッコイイ事だと思いこんでいた時期がありました
342デフォルトの名無しさん (ワッチョイ de10-4MLx)
2019/10/18(金) 08:24:07.64ID:RulO09Tc0 武器を持った奴が相手ならVBAを使わざるを得ない
343デフォルトの名無しさん (ワッチョイ de10-4MLx)
2019/10/18(金) 08:28:11.67ID:RulO09Tc0344デフォルトの名無しさん (ササクッテロル Sp47-5sgQ)
2019/10/18(金) 12:32:43.64ID:xgSV8V5dp >>343
そんなこと言わんと
VBAをとっとと卒業してC#辺りに入りなさいな。
他の言語も勉強するとVBAのコードの組み方もガラッと変わるよ。
例えば.Net系をやればクラスやインターフェースの理解がグッと深まるから
テスト項目も減らせる組み方が出来るし、変更点の改修も少ない組み方が出来るようになる。
そんなこと言わんと
VBAをとっとと卒業してC#辺りに入りなさいな。
他の言語も勉強するとVBAのコードの組み方もガラッと変わるよ。
例えば.Net系をやればクラスやインターフェースの理解がグッと深まるから
テスト項目も減らせる組み方が出来るし、変更点の改修も少ない組み方が出来るようになる。
345デフォルトの名無しさん (ワンミングク MM42-+Ykt)
2019/10/18(金) 12:35:35.40ID:YN+VnyL5M そういう所まで進みたい人とそうでも無い人がいるって事を理解しなよ
346デフォルトの名無しさん (ドコグロ MM32-tIsl)
2019/10/18(金) 12:45:18.66ID:dVFolCOsM >>345
どちらにせよVBAを極めても意味はないという帰結に違いはないな
どちらにせよVBAを極めても意味はないという帰結に違いはないな
347デフォルトの名無しさん (アウアウエー Saaa-1P7U)
2019/10/18(金) 12:47:17.38ID:as8acMuSa 本当にプログラミング好きな人はVBAじゃ満足しないだろ
VBAを極めるとはどういう状態かわかりませんが
VBAを極めるとはどういう状態かわかりませんが
348デフォルトの名無しさん (ワンミングク MM42-+Ykt)
2019/10/18(金) 12:55:00.41ID:YN+VnyL5M >>346
ちょっと理解出来ないです
ちょっと理解出来ないです
349デフォルトの名無しさん (ワッチョイ f345-UkKt)
2019/10/18(金) 14:34:31.34ID:C4vTbpVj0 2つ質問させてください
Sub Main()
Dim n As Long
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim ws1cell As Range
Dim r As Long
Set ws1 = Worksheets(1)
Set ws2 = Worksheets(Worksheets.Count)
n = ws1.Cells(Rows.Count, 5).End(xlUp).Row + 5
For r = 1 To ws2.Cells(Rows.Count, 5).End(xlUp).Row
Set ws1cell = ws1.Range("E:E").Find(ws2.Cells(r, 5).Value, lookat:=xlWhole)'項目名が違い、達成率が100%でない場合は開始日・終了日・達成率を更新
If ws1cell Is Nothing And ws2.Cells(r, 10) < 1 Then
ws1cell.Range(ws1.Cells(n, 8), ws1.Cells(n, 10)).Value = ws2.Range(ws2.Cells(r, 8), ws2.Cells(r, 10)).Value
n = n + 1
Else'達成度が進んだ場合は開始日・終了日・達成度を更新
If ws1cell.Value = ws2.Cells(r, 5).Value And ws1cell.Offset(0, 3) < ws2.Cells(r, 8) Then
ws1cell.Offset(0, 3) = ws2.Cells(r, 8)
ws1cell.Offset(0, 4) = ws2.Cells(r, 9)
ws1cell.Offset(0, 5) = ws2.Cells(r, 10)
End If
End If
Next r
End Sub
項目名が違う時にエラーが出てしまいます
If ws1cell is nothingの部分で変数を解放しているから問題なのかと考えていましたが、ws1cell = "" , 0に書き換えてもウォッチウィンドウで見ると
set ws1cellを通った後もnothingのままになっていました
setを通れば変数を定義出来ると思っていたのですが、どのようにすれば解決できますか?
よろしくお願いします
Sub Main()
Dim n As Long
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim ws1cell As Range
Dim r As Long
Set ws1 = Worksheets(1)
Set ws2 = Worksheets(Worksheets.Count)
n = ws1.Cells(Rows.Count, 5).End(xlUp).Row + 5
For r = 1 To ws2.Cells(Rows.Count, 5).End(xlUp).Row
Set ws1cell = ws1.Range("E:E").Find(ws2.Cells(r, 5).Value, lookat:=xlWhole)'項目名が違い、達成率が100%でない場合は開始日・終了日・達成率を更新
If ws1cell Is Nothing And ws2.Cells(r, 10) < 1 Then
ws1cell.Range(ws1.Cells(n, 8), ws1.Cells(n, 10)).Value = ws2.Range(ws2.Cells(r, 8), ws2.Cells(r, 10)).Value
n = n + 1
Else'達成度が進んだ場合は開始日・終了日・達成度を更新
If ws1cell.Value = ws2.Cells(r, 5).Value And ws1cell.Offset(0, 3) < ws2.Cells(r, 8) Then
ws1cell.Offset(0, 3) = ws2.Cells(r, 8)
ws1cell.Offset(0, 4) = ws2.Cells(r, 9)
ws1cell.Offset(0, 5) = ws2.Cells(r, 10)
End If
End If
Next r
End Sub
項目名が違う時にエラーが出てしまいます
If ws1cell is nothingの部分で変数を解放しているから問題なのかと考えていましたが、ws1cell = "" , 0に書き換えてもウォッチウィンドウで見ると
set ws1cellを通った後もnothingのままになっていました
setを通れば変数を定義出来ると思っていたのですが、どのようにすれば解決できますか?
よろしくお願いします
350デフォルトの名無しさん (ワッチョイ f345-UkKt)
2019/10/18(金) 14:35:51.85ID:C4vTbpVj0 改行エラーが出てしまったため2つに分けました
VBAを使い始めて1ヶ月弱なのですがC#でエクセルを操作出来るようになりたいと考えております
VBAで作ったプログラムを元にして、C#を学ぶ方法は無いでしょうか?
書き方が全然違うとの話を聞いたので、諦めて最初から覚えるしかないかと途方に暮れております
よろしくお願いします
VBAを使い始めて1ヶ月弱なのですがC#でエクセルを操作出来るようになりたいと考えております
VBAで作ったプログラムを元にして、C#を学ぶ方法は無いでしょうか?
書き方が全然違うとの話を聞いたので、諦めて最初から覚えるしかないかと途方に暮れております
よろしくお願いします
351デフォルトの名無しさん (ワッチョイ 92a2-r0zP)
2019/10/18(金) 14:58:09.86ID:irJy6XEP0 なんでvbaでできる事をいちいちC#でやろうとするか意味解らんよ
352デフォルトの名無しさん (スッップ Sd32-UkKt)
2019/10/18(金) 15:40:17.44ID:71CpEOK5d 今後C#を使う予定であれば、VBAで出来る事だとしてもC#を使う時間を増やした方が習得が早いと思ったからです
353デフォルトの名無しさん (ワッチョイ 1ef7-tmOE)
2019/10/18(金) 19:07:24.11ID:Kd4kiXAf0354デフォルトの名無しさん (スププ Sd32-YrLK)
2019/10/18(金) 19:07:29.23ID:7YrisXmNd 文法が全く違う言語だから何をどう頑張ろうがベースにはできない。
せいぜい同じ結果を出せるかどうかの演習材料にしかならんよ。
せいぜい同じ結果を出せるかどうかの演習材料にしかならんよ。
355デフォルトの名無しさん (ワッチョイ 237c-HAen)
2019/10/18(金) 19:11:29.96ID:vO06UtuM0 >>350
覚えるっていうか移植先の作法に従って書き換えるだけ
覚えるっていうか移植先の作法に従って書き換えるだけ
356デフォルトの名無しさん (ワッチョイ 1ef7-V+wO)
2019/10/18(金) 19:17:45.06ID:Kd4kiXAf0 >>349 書き直すけど
If ws1cell Is Nothing And ws2.Cells(r, 10) < 1 Then は
ws1cellがNothingのときじゃないと通らない。なのにそのあとでws1cell.Range〜とかws1cell.Offsetなんてやると当然エラーになる。
Not ws1cell Is Nothing みたいに反転させないと。
If ws1cell Is Nothing And ws2.Cells(r, 10) < 1 Then は
ws1cellがNothingのときじゃないと通らない。なのにそのあとでws1cell.Range〜とかws1cell.Offsetなんてやると当然エラーになる。
Not ws1cell Is Nothing みたいに反転させないと。
357デフォルトの名無しさん (ワンミングク MM42-+Ykt)
2019/10/18(金) 19:35:18.82ID:YN+VnyL5M セルがどういう時にnothingになるのか分かって条件に指定してるのか怪しい気がする
358デフォルトの名無しさん (ササクッテロル Sp47-5sgQ)
2019/10/18(金) 19:38:22.84ID:xgSV8V5dp >>350
VBAやって一ヶ月ならそのままVBAやっておけばいいよ。別に急いでるわけでもないんでしょ?
VBAやってツールの幾つかでも作って、コードがそらで書けるようになったらまずVB.Netをやる。
文法はそっくりだけど構成が違うし見たこともない命令も沢山あるから多分苦労すると思う。
でもここさえ乗り越えてしまえばObject指向の何たるかが大体解るようになるからそうしたらC#に入ればいいよ。
C#はVBA→VB.Netのときとは逆に構成がVB.Netとよく似ていて文法が違う。あと型が厳しい。
でも、ま、VB.Netを覚えてしまえばC#も7割方理解したって言えると思う。
何も手を着けてない状態なら最初からC#をやることを勧めるけど
折角VBA始めたんだから遠回りにはなるかも知れないけどそういう楽な方法もあるよ。
VBAやって一ヶ月ならそのままVBAやっておけばいいよ。別に急いでるわけでもないんでしょ?
VBAやってツールの幾つかでも作って、コードがそらで書けるようになったらまずVB.Netをやる。
文法はそっくりだけど構成が違うし見たこともない命令も沢山あるから多分苦労すると思う。
でもここさえ乗り越えてしまえばObject指向の何たるかが大体解るようになるからそうしたらC#に入ればいいよ。
C#はVBA→VB.Netのときとは逆に構成がVB.Netとよく似ていて文法が違う。あと型が厳しい。
でも、ま、VB.Netを覚えてしまえばC#も7割方理解したって言えると思う。
何も手を着けてない状態なら最初からC#をやることを勧めるけど
折角VBA始めたんだから遠回りにはなるかも知れないけどそういう楽な方法もあるよ。
359デフォルトの名無しさん (ドコグロ MMea-VRky)
2019/10/18(金) 20:19:32.44ID:L2N4rS5+M それ以前に>>349は
> 項目名が違う時にエラーが出てしまいます
じゃなくてどの行でどんなエラーが出てるのかを書けよ
ID:Kd4kiXAf0は超親切だからレスしてくれてるけど普通はスルーされて終わりだよ
> 項目名が違う時にエラーが出てしまいます
じゃなくてどの行でどんなエラーが出てるのかを書けよ
ID:Kd4kiXAf0は超親切だからレスしてくれてるけど普通はスルーされて終わりだよ
360デフォルトの名無しさん (ワッチョイ 6f02-UkKt)
2019/10/18(金) 21:48:21.62ID:/2Um4idM0361デフォルトの名無しさん (ワッチョイ 237c-HAen)
2019/10/18(金) 21:50:15.03ID:vO06UtuM0362デフォルトの名無しさん (アークセー Sx47-vS/Z)
2019/10/18(金) 23:10:26.23ID:3qufjhb3x >>361
もっと細かく言うとDimでやっているのは定義ではなく、あらかじめ定義されたデータ型の適用を宣言してその型に適合したメモリ領域を確保することなんだけどな
未知の型を宣言するとエンジン側で型検査できずにコンパイルエラーになることを考えたら分かる
もっと細かく言うとDimでやっているのは定義ではなく、あらかじめ定義されたデータ型の適用を宣言してその型に適合したメモリ領域を確保することなんだけどな
未知の型を宣言するとエンジン側で型検査できずにコンパイルエラーになることを考えたら分かる
363デフォルトの名無しさん (ワッチョイ 124f-5sgQ)
2019/10/18(金) 23:16:13.52ID:1ynBc/Lo0 >>360
そういう目的があるならまず覚えるべきはSQLだね
VBAだろうがJavaだろうが.Netだろうが
どの言語をやっていてもデータベースを扱う限り
SQLはまず使わないことがない。
ま、中にはEntityFreamworkなんてSQLを使わずにDBに同期してデータを
引っ張るなんて場合もあったりするけどSQLは最初の内に覚えておいて絶対損はしないよ。
そういう目的があるならまず覚えるべきはSQLだね
VBAだろうがJavaだろうが.Netだろうが
どの言語をやっていてもデータベースを扱う限り
SQLはまず使わないことがない。
ま、中にはEntityFreamworkなんてSQLを使わずにDBに同期してデータを
引っ張るなんて場合もあったりするけどSQLは最初の内に覚えておいて絶対損はしないよ。
364デフォルトの名無しさん (ドコグロ MM32-tIsl)
2019/10/18(金) 23:22:21.64ID:dVFolCOsM365デフォルトの名無しさん (ワッチョイ 124f-5sgQ)
2019/10/19(土) 00:34:54.51ID:UvKzTNAx0 >>364
そこは割り切り。
どうせどんな言語やってたってちょろっとしたツールを作るには
VBAでやった方が手っ取り早いことの方が多いんだから。
どの仕事場でも大概Excelは入っているしね。
それにVB系は癖が強いから他言語の習得を阻害するというのも
個人の適応能力やセンスによるものも大きいからちょっと何とも言えないし。
むしろ俺みたいに適応力やセンスが皆無なら
やれ構造化言語だ、object指向だ、関数型言語だって変わるたびにチンプンカンプンなところから始めるから
結局否応なくその言語に合わせることになるんだけどね。
そこは割り切り。
どうせどんな言語やってたってちょろっとしたツールを作るには
VBAでやった方が手っ取り早いことの方が多いんだから。
どの仕事場でも大概Excelは入っているしね。
それにVB系は癖が強いから他言語の習得を阻害するというのも
個人の適応能力やセンスによるものも大きいからちょっと何とも言えないし。
むしろ俺みたいに適応力やセンスが皆無なら
やれ構造化言語だ、object指向だ、関数型言語だって変わるたびにチンプンカンプンなところから始めるから
結局否応なくその言語に合わせることになるんだけどね。
366デフォルトの名無しさん (ワッチョイ 6bce-S3Tg)
2019/10/19(土) 02:56:34.09ID:Z3LWqSJp0 .netを始める上での壁は文法や型なんかより膨大なクラスを把握することだからVBでもC#でも手間は変わらん
しかも日々増殖したり仕様が変わったりするから手に負えない
しかも日々増殖したり仕様が変わったりするから手に負えない
367デフォルトの名無しさん (ワッチョイ f335-S3Tg)
2019/10/19(土) 05:58:33.57ID:4RrPMtib0368デフォルトの名無しさん (ワッチョイ 124f-5sgQ)
2019/10/19(土) 06:05:45.30ID:UvKzTNAx0 >>367
ちょい前までExcelに入るんじゃないかって噂で騒がれてたPython、あれ関数型言語だよ
ちょい前までExcelに入るんじゃないかって噂で騒がれてたPython、あれ関数型言語だよ
369デフォルトの名無しさん (ワッチョイ f335-S3Tg)
2019/10/19(土) 06:21:12.47ID:4RrPMtib0370デフォルトの名無しさん (ワッチョイ 124f-5sgQ)
2019/10/19(土) 06:47:40.57ID:UvKzTNAx0 うーん、なんて言うか
Microsoftが出してる言語、複数やったことがある人なら何となく知ってると思うんだけど
何か中途半端にとどめておくのが好きみたいな傾向があって、
例えばVBAや旧VB6なんかでもObject指向の概念は
取り入れてるんだけどインターフェースはあるけど
.Netでいう継承は出来ないとか
.Netでも関数型言語の概念は取り入れててlinqやrambda式が使えるけどデータ分析や機械学習が
出来ないって訳じゃないけど苦手だったり。
次に何か出るときはその変のことが統合されて
いい感じになったものが出るんだろうけど
多分次もその次に出て来る新しい概念を
中途半端に取り入れたところで落ち着くような
そんなことを繰り返すような気がするね。
Microsoftが出してる言語、複数やったことがある人なら何となく知ってると思うんだけど
何か中途半端にとどめておくのが好きみたいな傾向があって、
例えばVBAや旧VB6なんかでもObject指向の概念は
取り入れてるんだけどインターフェースはあるけど
.Netでいう継承は出来ないとか
.Netでも関数型言語の概念は取り入れててlinqやrambda式が使えるけどデータ分析や機械学習が
出来ないって訳じゃないけど苦手だったり。
次に何か出るときはその変のことが統合されて
いい感じになったものが出るんだろうけど
多分次もその次に出て来る新しい概念を
中途半端に取り入れたところで落ち着くような
そんなことを繰り返すような気がするね。
371デフォルトの名無しさん (ワッチョイ 1201-VRky)
2019/10/19(土) 06:54:51.77ID:a0xT/TLW0372デフォルトの名無しさん (ワッチョイ 124f-5sgQ)
2019/10/19(土) 07:39:52.38ID:UvKzTNAx0373デフォルトの名無しさん (アウアウエー Saaa-mdgP)
2019/10/19(土) 07:43:44.99ID:VlF8OMgza ここの人たちはどんなシステム作ろうとしてるんだ
事務処理をちょい効率化したい程度の簡単なプログラムならVBAが最高
事務処理をちょい効率化したい程度の簡単なプログラムならVBAが最高
374デフォルトの名無しさん (ワッチョイ 124f-5sgQ)
2019/10/19(土) 08:08:42.95ID:UvKzTNAx0 >>373
そうなんだよね。
よく「別言語の〜でやれば〜行で出来るのに」って
言う人がいるけどあれは違うと思う。
VBAは凄く間口が広い言語で
EXCELが有ればどこでも組める言語。
手軽だから何かをちょろっとやらせるには
非常に使い勝手のいい言語なんだよね。
特にExcelが絡んだときは。
間口が広いってことは初心者からお年寄りまで
誰にでも優しい言語だからそりゃ至らない部分も沢山あるけど
他の言語で簡単に出来る部分でExcelが苦手な部分を
どうやっていい感じに作りこんで行くかを考えるのもまた醍醐味。
例えばXNAとかでテトリス作った後でもう一回
じゃ、今度はVBAで作って見ようかなと思わせる
何かがある言語だと思う。
そうなんだよね。
よく「別言語の〜でやれば〜行で出来るのに」って
言う人がいるけどあれは違うと思う。
VBAは凄く間口が広い言語で
EXCELが有ればどこでも組める言語。
手軽だから何かをちょろっとやらせるには
非常に使い勝手のいい言語なんだよね。
特にExcelが絡んだときは。
間口が広いってことは初心者からお年寄りまで
誰にでも優しい言語だからそりゃ至らない部分も沢山あるけど
他の言語で簡単に出来る部分でExcelが苦手な部分を
どうやっていい感じに作りこんで行くかを考えるのもまた醍醐味。
例えばXNAとかでテトリス作った後でもう一回
じゃ、今度はVBAで作って見ようかなと思わせる
何かがある言語だと思う。
375デフォルトの名無しさん (ドコグロ MM33-VRky)
2019/10/19(土) 08:10:42.89ID:Mtyg747cM376デフォルトの名無しさん (アウアウウー Sa43-r0zP)
2019/10/19(土) 10:54:26.76ID:CSoOYtrTa VBAのいいところはほぼ会社のPCで普通にはいっているExcelでいろんなことができるようになることだろ
C#だなんだっていうやつは職場のPCにかってにVSとかいれていいとでも思ってるのかな
それをわかってないバカが多すぎ
C#だなんだっていうやつは職場のPCにかってにVSとかいれていいとでも思ってるのかな
それをわかってないバカが多すぎ
377デフォルトの名無しさん (スフッ Sd32-S3Tg)
2019/10/19(土) 11:14:07.78ID:Vb23X7hcd データの整理とか手作業でやらされてるのを、ちょっと自動化して楽したいだけなのに、なんでC#とか使わなあかんの
378デフォルトの名無しさん (ワッチョイ 1201-VRky)
2019/10/19(土) 11:32:54.08ID:a0xT/TLW0379デフォルトの名無しさん (アークセー Sx47-vS/Z)
2019/10/19(土) 11:43:29.38ID:ZEihazemx ちょっとした処理のためにCOMのOfficeのGUIを起動させ続けなきゃいけないってのがVBAの最大の難点でしよ
単なるデータ整理をする環境として見るとOfficeは高機能すぎるし効率が悪い
PowerShellなんてWindows標準でSDKとCUIがインストールされてるしマルチプロセスもOKだからな
単なるデータ整理をする環境として見るとOfficeは高機能すぎるし効率が悪い
PowerShellなんてWindows標準でSDKとCUIがインストールされてるしマルチプロセスもOKだからな
380デフォルトの名無しさん (ササクッテロル Sp47-5sgQ)
2019/10/19(土) 12:03:08.48ID:hNMTCzKgp Powershellは.NetFramework抜いたらただのshell
.NetFrameworkにへばりついてるただの寄生虫
.NetFrameworkにへばりついてるただの寄生虫
38249 (スップ Sd52-Nocg)
2019/10/19(土) 12:06:19.27ID:EjAyXMTtd38349 (スップ Sd52-Nocg)
2019/10/19(土) 12:09:07.46ID:EjAyXMTtd ちなみにここはVBAのスレであってExcelブックをどうにかしたいスレじゃない。
でも、なぜか競合しないのにVBAでないものを書く人が沸いてくるね。
でも、なぜか競合しないのにVBAでないものを書く人が沸いてくるね。
384デフォルトの名無しさん (ワッチョイ 1201-VRky)
2019/10/19(土) 12:09:32.04ID:a0xT/TLW0385デフォルトの名無しさん (ワッチョイ 1201-VRky)
2019/10/19(土) 12:10:48.45ID:a0xT/TLW0386デフォルトの名無しさん (アウアウエー Saaa-mdgP)
2019/10/19(土) 12:29:53.54ID:Tgsi24Yea パワーシェルってなんだよ
難しいな
難しいな
387デフォルトの名無しさん (アウアウエー Saaa-mdgP)
2019/10/19(土) 12:37:43.59ID:Tgsi24Yea 理解したわ
388デフォルトの名無しさん (スフッ Sd32-FOpr)
2019/10/19(土) 13:01:01.88ID:pCXt87yDd389デフォルトの名無しさん (アークセー Sx47-vS/Z)
2019/10/19(土) 13:21:58.93ID:ZEihazemx >>388
俺は逆に発注側だけど、Excelの方が都合が良いというより、Excelしか想像できない奴に要件整理のタスクを与えて社内稟議まで通してRFP出してしまう感じ
Excelで作ろうが他のシステムで作ろうが発注側は中身が理解できないから取捨選択すらしてない
俺は逆に発注側だけど、Excelの方が都合が良いというより、Excelしか想像できない奴に要件整理のタスクを与えて社内稟議まで通してRFP出してしまう感じ
Excelで作ろうが他のシステムで作ろうが発注側は中身が理解できないから取捨選択すらしてない
390デフォルトの名無しさん (ワッチョイ 6bce-S3Tg)
2019/10/19(土) 13:22:25.60ID:Z3LWqSJp0 ある意味閉じた環境だからテストが楽なんだよ
もちろん完全なサンドボックスではないけど
もちろん完全なサンドボックスではないけど
39149 (スップ Sd52-Nocg)
2019/10/19(土) 13:27:49.07ID:EjAyXMTtd392デフォルトの名無しさん (ブーイモ MM5b-4MLx)
2019/10/19(土) 13:37:35.97ID:cIlA6SsdM csc教えてくれてありがとう。世界が広がったわ。
エクセルで社内chatアプリとか作り放題できそう。
エクセルで社内chatアプリとか作り放題できそう。
393デフォルトの名無しさん (ワッチョイ 2701-U7Hu)
2019/10/19(土) 23:16:31.79ID:Ryiq5UZK0 A1セルに飛びたいブックのアドレスが書いてある(C:\test1.xlsx)環境下
test1.xlsxが開いていなければWorkbooks.Open(Filepath)で開く
test1.xlsxが開いていなければハイパーリンクで飛ぶ(2重起動しないため)
にしたいのですが、どうしてもできません。
G4にハイパーリンクをせっていしましたが、できません・・・どこが悪いのでしょうか?
Dim myChkBook As Workbook
Dim bookname As String
On Error GoTo ErrHdl
Set myChkBook = Workbooks("test1.xlsx")
'"開かれています。"
'ハイパーリンク起動G4
Range("G4").Hyperlinks(1).Follow NewWindow:=True
Exit Sub
ErrHdl:
' "開かれていません。"
(↓pas_kombetu1は設定済みで以下のマクロは実行できます。)
Dim Filepath
Filepath = pas_kom1
Dim targetWorkbook As Workbook
Set targetWorkbook = Workbooks.Open(Filepath)
test1.xlsxが開いていなければWorkbooks.Open(Filepath)で開く
test1.xlsxが開いていなければハイパーリンクで飛ぶ(2重起動しないため)
にしたいのですが、どうしてもできません。
G4にハイパーリンクをせっていしましたが、できません・・・どこが悪いのでしょうか?
Dim myChkBook As Workbook
Dim bookname As String
On Error GoTo ErrHdl
Set myChkBook = Workbooks("test1.xlsx")
'"開かれています。"
'ハイパーリンク起動G4
Range("G4").Hyperlinks(1).Follow NewWindow:=True
Exit Sub
ErrHdl:
' "開かれていません。"
(↓pas_kombetu1は設定済みで以下のマクロは実行できます。)
Dim Filepath
Filepath = pas_kom1
Dim targetWorkbook As Workbook
Set targetWorkbook = Workbooks.Open(Filepath)
394デフォルトの名無しさん (ワッチョイ 2701-U7Hu)
2019/10/19(土) 23:20:25.07ID:Ryiq5UZK0 ↑393です。間違えました。訂正します
A1セルに飛びたいブックのアドレスが書いてある(C:\test1.xlsx)環境下
test1.xlsxが開いていなければWorkbooks.Open(Filepath)で開く
test1.xlsxが開いていればハイパーリンクで飛ぶ(2重起動しないため)
にしたいのですが、どうしてもできません。
G4にハイパーリンクをせっていしましたが、できません・・・どこが悪いのでしょうか?
Dim myChkBook As Workbook
Dim bookname As String
On Error GoTo ErrHdl
Set myChkBook = Workbooks("test1.xlsx")
'"開かれています。"
'ハイパーリンク起動G4
Range("G4").Hyperlinks(1).Follow NewWindow:=True
Exit Sub
ErrHdl:
' "開かれていません。"
(↓pas_kombetu1は設定済みで以下のマクロは実行できます。)
Dim Filepath
Filepath = pas_kom1
Dim targetWorkbook As Workbook
Set targetWorkbook = Workbooks.Open(Filepath)
A1セルに飛びたいブックのアドレスが書いてある(C:\test1.xlsx)環境下
test1.xlsxが開いていなければWorkbooks.Open(Filepath)で開く
test1.xlsxが開いていればハイパーリンクで飛ぶ(2重起動しないため)
にしたいのですが、どうしてもできません。
G4にハイパーリンクをせっていしましたが、できません・・・どこが悪いのでしょうか?
Dim myChkBook As Workbook
Dim bookname As String
On Error GoTo ErrHdl
Set myChkBook = Workbooks("test1.xlsx")
'"開かれています。"
'ハイパーリンク起動G4
Range("G4").Hyperlinks(1).Follow NewWindow:=True
Exit Sub
ErrHdl:
' "開かれていません。"
(↓pas_kombetu1は設定済みで以下のマクロは実行できます。)
Dim Filepath
Filepath = pas_kom1
Dim targetWorkbook As Workbook
Set targetWorkbook = Workbooks.Open(Filepath)
395デフォルトの名無しさん (ワッチョイ 2701-U7Hu)
2019/10/19(土) 23:20:42.32ID:Ryiq5UZK0 ↑393です。間違えました。訂正します
A1セルに飛びたいブックのアドレスが書いてある(C:\test1.xlsx)環境下
test1.xlsxが開いていなければWorkbooks.Open(Filepath)で開く
test1.xlsxが開いていればハイパーリンクで飛ぶ(2重起動しないため)
にしたいのですが、どうしてもできません。
G4にハイパーリンクをせっていしましたが、できません・・・どこが悪いのでしょうか?
Dim myChkBook As Workbook
Dim bookname As String
On Error GoTo ErrHdl
Set myChkBook = Workbooks("test1.xlsx")
'"開かれています。"
'ハイパーリンク起動G4
Range("G4").Hyperlinks(1).Follow NewWindow:=True
Exit Sub
ErrHdl:
' "開かれていません。"
(↓pas_kombetu1は設定済みで以下のマクロは実行できます。)
Dim Filepath
Filepath = pas_kom1
Dim targetWorkbook As Workbook
Set targetWorkbook = Workbooks.Open(Filepath)
A1セルに飛びたいブックのアドレスが書いてある(C:\test1.xlsx)環境下
test1.xlsxが開いていなければWorkbooks.Open(Filepath)で開く
test1.xlsxが開いていればハイパーリンクで飛ぶ(2重起動しないため)
にしたいのですが、どうしてもできません。
G4にハイパーリンクをせっていしましたが、できません・・・どこが悪いのでしょうか?
Dim myChkBook As Workbook
Dim bookname As String
On Error GoTo ErrHdl
Set myChkBook = Workbooks("test1.xlsx")
'"開かれています。"
'ハイパーリンク起動G4
Range("G4").Hyperlinks(1).Follow NewWindow:=True
Exit Sub
ErrHdl:
' "開かれていません。"
(↓pas_kombetu1は設定済みで以下のマクロは実行できます。)
Dim Filepath
Filepath = pas_kom1
Dim targetWorkbook As Workbook
Set targetWorkbook = Workbooks.Open(Filepath)
396デフォルトの名無しさん (ワッチョイ 1259-YrLK)
2019/10/19(土) 23:27:37.60ID:yen3fKlK0 ハイパーリンクでどこへ飛ぼうとしているのか?
天国か?
天国か?
397デフォルトの名無しさん (オッペケ Sr47-UVSK)
2019/10/20(日) 04:33:33.09ID:9oZ0eOj0r mychkbook.activate
range~
range~
398デフォルトの名無しさん (アークセー Sx47-UVSK)
2019/10/20(日) 14:29:15.27ID:udtUjyhnx >>395
やりたいことはこういうことかな?
処理の内容からみて、GoToでエラーハンドラに飛ばす必要はないと思う
' 開いているブックの集合に対してループを回し、順番にmyChkbookにセットして名前を調べ、test1.xlsxが見つかったらループを終了する
Dim myChkbook As Workbook
For Each myChkbook In Workbooks
If myChkbook.Name = "test1.xlsx" Then Exit For
Next myChkbook
' ループが終了した段階でmyChkbookにセットされているブックの名前がtest1.xlsxでない場合、test1.xlsxが開かれていないことを意味するので、test1.xlsxを開いてmyChkbookにセットする
If myChkbook.Name <> "test1.xlsx"
Then Set myChkbook = Workbooks.Open(pas_kom1)
' myChkbookをアクティブにしてハイパーリンクをフォローする
myChkbook.Activate
Range("G4").Hyperlinks(1).Follow NewWindow:=True
やりたいことはこういうことかな?
処理の内容からみて、GoToでエラーハンドラに飛ばす必要はないと思う
' 開いているブックの集合に対してループを回し、順番にmyChkbookにセットして名前を調べ、test1.xlsxが見つかったらループを終了する
Dim myChkbook As Workbook
For Each myChkbook In Workbooks
If myChkbook.Name = "test1.xlsx" Then Exit For
Next myChkbook
' ループが終了した段階でmyChkbookにセットされているブックの名前がtest1.xlsxでない場合、test1.xlsxが開かれていないことを意味するので、test1.xlsxを開いてmyChkbookにセットする
If myChkbook.Name <> "test1.xlsx"
Then Set myChkbook = Workbooks.Open(pas_kom1)
' myChkbookをアクティブにしてハイパーリンクをフォローする
myChkbook.Activate
Range("G4").Hyperlinks(1).Follow NewWindow:=True
399デフォルトの名無しさん (アウアウウー Sa43-hJjz)
2019/10/20(日) 17:59:43.40ID:WrbRE/qYa どうせ設定とかじゃね
400デフォルトの名無しさん (ワッチョイ 92ae-ZGIR)
2019/10/22(火) 08:37:21.30ID:Ppw3/Jpc0 プログラムじゃなくて、プログラミング言語とは…驚いた
学生の頃、友人がyaccとか字句解析とか構文解析とか言ってたが、その世界か…分からん
スーパー中学生誕生、プログラミング言語わずか数週間で開発、
U-22プログラミング・コンテスト2019 2019/10/21
https://www.bcnretail.com/market/detail/20191021_142131.html
「もっと人間にとって扱いやすい、自分の言語をつくってみたかった」。
10月20日に東京の秋葉原コンベンションホールで開催された第40回「U-22プログラミング・コンテスト2019」の
最終審査会で、見事、経済産業大臣賞(総合)を受賞した開成中学校3年の上原直人さん(15歳)は、
独自プログラミング言語「Blawn」を発表した。
IT業界の経営者など、並みいる審査員を驚かせたのは、完成度の高さはもちろんのこと、今年8月からわずか
数週間で完成させたスピードだった。
一次審査の応募期間7月1日〜9月2日に着想から開発、完成まで一人で仕上げたという。
◆C言語を使ったのは今年7月
それまでPythonを使っていたという上原さんは発表の中で、「今年の7月か8月にC++を始めたが、扱いにくかった。
もっと可読性の高い構文とメモリの安全性や速度を高めたいと思った」と、開発のきっかけについて語った。
質疑応答で審査員から、「7月にC++を使ったということは、Blawnはそれ以降につくられたということですか?」
と聞かれて、上原さんが「7月中旬に構想して構文解析を行って、プログラムを書き始めたのは8月ごろ」と答えると、
会場にどよめきが起きた。文句なしの受賞だった。
上原さんは、ほかにもスポンサー企業のデジタルガレージとサイボウズ2社の賞と、当日の模様を配信した
ニコニコ生放送の視聴者による賞など4冠を達成した。
Blawnの特徴は、型名の記述が一切不要、構文の可読性が高い、すべての関数/クラスがC++でいうところの
テンプレート関数/クラス、コンパイル速度と実行速度が速い、メモリが安全などだ。
また、Blawnの言語名は「Blue Lawn(青い芝)」からもじったもので、隣の芝が青く見えるほど、既存の言語の
不満を解消できるような良い言語にしたい気持ちを込めたという心憎い演出もあった。
学生の頃、友人がyaccとか字句解析とか構文解析とか言ってたが、その世界か…分からん
スーパー中学生誕生、プログラミング言語わずか数週間で開発、
U-22プログラミング・コンテスト2019 2019/10/21
https://www.bcnretail.com/market/detail/20191021_142131.html
「もっと人間にとって扱いやすい、自分の言語をつくってみたかった」。
10月20日に東京の秋葉原コンベンションホールで開催された第40回「U-22プログラミング・コンテスト2019」の
最終審査会で、見事、経済産業大臣賞(総合)を受賞した開成中学校3年の上原直人さん(15歳)は、
独自プログラミング言語「Blawn」を発表した。
IT業界の経営者など、並みいる審査員を驚かせたのは、完成度の高さはもちろんのこと、今年8月からわずか
数週間で完成させたスピードだった。
一次審査の応募期間7月1日〜9月2日に着想から開発、完成まで一人で仕上げたという。
◆C言語を使ったのは今年7月
それまでPythonを使っていたという上原さんは発表の中で、「今年の7月か8月にC++を始めたが、扱いにくかった。
もっと可読性の高い構文とメモリの安全性や速度を高めたいと思った」と、開発のきっかけについて語った。
質疑応答で審査員から、「7月にC++を使ったということは、Blawnはそれ以降につくられたということですか?」
と聞かれて、上原さんが「7月中旬に構想して構文解析を行って、プログラムを書き始めたのは8月ごろ」と答えると、
会場にどよめきが起きた。文句なしの受賞だった。
上原さんは、ほかにもスポンサー企業のデジタルガレージとサイボウズ2社の賞と、当日の模様を配信した
ニコニコ生放送の視聴者による賞など4冠を達成した。
Blawnの特徴は、型名の記述が一切不要、構文の可読性が高い、すべての関数/クラスがC++でいうところの
テンプレート関数/クラス、コンパイル速度と実行速度が速い、メモリが安全などだ。
また、Blawnの言語名は「Blue Lawn(青い芝)」からもじったもので、隣の芝が青く見えるほど、既存の言語の
不満を解消できるような良い言語にしたい気持ちを込めたという心憎い演出もあった。
401デフォルトの名無しさん (ワッチョイ 92a2-r0zP)
2019/10/22(火) 15:11:43.53ID:qPForpUI0 なぜ天才は日本語プログラミング言語を作ってくれないのか
402デフォルトの名無しさん (ワッチョイ 237c-HAen)
2019/10/22(火) 15:18:35.17ID:N/F1Z5u20 日本語プログラム言語あるけど流行ってない
403デフォルトの名無しさん (ワッチョイ f335-S3Tg)
2019/10/22(火) 15:19:56.38ID:xfWb2k0X0 変数に2バイト文字使えるだけでもかなりありがたいぞ
404デフォルトの名無しさん (アウアウウー Sa43-hJjz)
2019/10/22(火) 15:30:45.72ID:xJDh6jyea >>401
日本語が曖昧で向いてないだろ
日本語が曖昧で向いてないだろ
405デフォルトの名無しさん (アークセー Sx47-UVSK)
2019/10/22(火) 15:40:40.34ID:9HPDColwx 自然言語のルールそのままでプログラミング言語を実装するわけじゃないから日本語が曖昧云々ってのはズレてる
英語のit とかtheyとかbeだって曖昧極まりないし
英語のit とかtheyとかbeだって曖昧極まりないし
406デフォルトの名無しさん (ワッチョイ 1201-VRky)
2019/10/22(火) 16:09:09.07ID:GMYZfzoF0407デフォルトの名無しさん (ワッチョイ f335-S3Tg)
2019/10/22(火) 16:09:15.44ID:xfWb2k0X0 >>404みたいなのは何も考えてない+自分に自信を持てないアホだから相手しても時間の無駄だぞ
408デフォルトの名無しさん (ワッチョイ f335-S3Tg)
2019/10/22(火) 16:17:32.52ID:xfWb2k0X0409デフォルトの名無しさん (オッペケ Sr47-zzXu)
2019/10/22(火) 17:34:47.60ID:wz2D8YEyr410デフォルトの名無しさん (ワッチョイ 1201-VRky)
2019/10/22(火) 17:37:00.61ID:GMYZfzoF0 >>408
それこそVBAでも使えるしVisual Studioで使えるC/C++, C#, VB.NETはもとより、GCCとかPython3でも使える
それこそVBAでも使えるしVisual Studioで使えるC/C++, C#, VB.NETはもとより、GCCとかPython3でも使える
411デフォルトの名無しさん (オイコラミネオ MM8f-XaGA)
2019/10/22(火) 17:42:31.34ID:lfmCyloCM vlookupを最下行まで入れたくて、検索範囲を絶対参照にしたいんだけどできるの?
$maxrow$じゃだめだよね
$maxrow$じゃだめだよね
412デフォルトの名無しさん (ワッチョイ 237c-HAen)
2019/10/22(火) 18:05:19.82ID:N/F1Z5u20 >>411
.Rows.Count
.Rows.Count
413デフォルトの名無しさん (ワッチョイ 92da-GDtP)
2019/10/22(火) 19:26:57.40ID:yzv1f2K60 108万行探すつもりかよww
A:Aとかじゃダメなのか。
A:Aとかじゃダメなのか。
414デフォルトの名無しさん (ワッチョイ f335-S3Tg)
2019/10/22(火) 19:34:37.46ID:xfWb2k0X0 100行しかデータが入ってなくても、A:Aみたいに列全体にすれば自動的にA1:A100みたいに解釈してくれるよ
415デフォルトの名無しさん (スッップ Sd32-Nocg)
2019/10/22(火) 20:37:15.07ID:8AVeU+tzd416デフォルトの名無しさん (アークセー Sx47-UVSK)
2019/10/22(火) 20:49:46.38ID:IKwAwtn1x >>415
ApplicationレベルのWorkbookActivateイベントで何らかの処理を噛ませている可能性があるから、Activateメソッドが無意味とは言いきれない
ApplicationレベルのWorkbookActivateイベントで何らかの処理を噛ませている可能性があるから、Activateメソッドが無意味とは言いきれない
417デフォルトの名無しさん (ワッチョイ f335-S3Tg)
2019/10/22(火) 20:51:16.87ID:xfWb2k0X0 それは考えすぎw
ハンドラまで作れる人ならこんな質問しないよ
ハンドラまで作れる人ならこんな質問しないよ
418デフォルトの名無しさん (JP 0H82-S3Tg)
2019/10/22(火) 21:38:55.73ID:tIwQFwn0H Excelで、「行ごとに違う色をつけるが、1行目だけ何も色を付けない」というVBAの書き方を教えてくんさい。
419デフォルトの名無しさん (アウアウウー Sa43-tIsl)
2019/10/22(火) 21:46:01.16ID:lomrvhbna >>418
https://support.office.com/ja-jp/article/-1-行おきまたは-1-列おきに色を設定する-30002ce0-7a1c-4d70-a70c-4b6232f09f5e
VBAなど不要
どうしても一発でやりたいならマクロの記録を使えばいい
https://support.office.com/ja-jp/article/-1-行おきまたは-1-列おきに色を設定する-30002ce0-7a1c-4d70-a70c-4b6232f09f5e
VBAなど不要
どうしても一発でやりたいならマクロの記録を使えばいい
420デフォルトの名無しさん (ワッチョイ 9268-S3Tg)
2019/10/22(火) 21:48:09.80ID:fx5uI0000 >>418
3行目から始まる、4行ごとのsannpuru
色(65535の部分)はマクロの記録で取ってくれ
あともう少し真面目に聞いたほうが回答が尽きやすい
For i = 3 To 100 Step 4
Rows(i & ":" & i).Interior.Color = 65535
Next
End Sub
3行目から始まる、4行ごとのsannpuru
色(65535の部分)はマクロの記録で取ってくれ
あともう少し真面目に聞いたほうが回答が尽きやすい
For i = 3 To 100 Step 4
Rows(i & ":" & i).Interior.Color = 65535
Next
End Sub
421デフォルトの名無しさん (JP 0H82-S3Tg)
2019/10/22(火) 22:45:35.38ID:tIwQFwn0H >>420
すみません&有り難うございます。
具体的な目的を書かずに適当に質問してしまったのですが、やりたいことは
1.行ごとに違う色を入れる
2.1行目だけ何もしない(色を変えない)
3.2についてはIF文を使う
なのですが、3.が上手くいきません。
*************************************************************************:
Sub xxxxxxx()
Dim i As Integer
Dim z As Integer
Dim y As Integer
z = 500 '最大行数
y = 300 '最大列数
For i = 1 To z '繰り返し処理を使い、変数は1〜500
Range(Cells(i, 1), Cells(i, y)).Interior.ColorIndex = 22 'セル範囲の指定
Next i '500行目までを22番色で埋める
For i = 1 To z Step 2 '1行飛ばしで500行目までを13番色で埋める
Range(Cells(i, 1), Cells(i, y)).Interior.ColorIndex = 13 'セル範囲の指定
Next i
End Sub
**********************************************************************↓こういう感じのIF文を入れたい
If i = 1 Then '1行目だけ何もしない
Range(Cells(i, 1), Cells(i, y)).Interior.ColorIndex = 00
Else
すみません&有り難うございます。
具体的な目的を書かずに適当に質問してしまったのですが、やりたいことは
1.行ごとに違う色を入れる
2.1行目だけ何もしない(色を変えない)
3.2についてはIF文を使う
なのですが、3.が上手くいきません。
*************************************************************************:
Sub xxxxxxx()
Dim i As Integer
Dim z As Integer
Dim y As Integer
z = 500 '最大行数
y = 300 '最大列数
For i = 1 To z '繰り返し処理を使い、変数は1〜500
Range(Cells(i, 1), Cells(i, y)).Interior.ColorIndex = 22 'セル範囲の指定
Next i '500行目までを22番色で埋める
For i = 1 To z Step 2 '1行飛ばしで500行目までを13番色で埋める
Range(Cells(i, 1), Cells(i, y)).Interior.ColorIndex = 13 'セル範囲の指定
Next i
End Sub
**********************************************************************↓こういう感じのIF文を入れたい
If i = 1 Then '1行目だけ何もしない
Range(Cells(i, 1), Cells(i, y)).Interior.ColorIndex = 00
Else
422デフォルトの名無しさん (ワッチョイ 237c-HAen)
2019/10/22(火) 23:10:48.22ID:N/F1Z5u20 >>421
Ifにする必要がわからない
Range(Cells(1, 1), Cells(1, y)).Interior.ColorIndex = 0 を最後に入れるか、
最初に入れてForの開始行を1にしなければいいと思うんだが
上手くいかないとはどういかないの?
Ifにする必要がわからない
Range(Cells(1, 1), Cells(1, y)).Interior.ColorIndex = 0 を最後に入れるか、
最初に入れてForの開始行を1にしなければいいと思うんだが
上手くいかないとはどういかないの?
423デフォルトの名無しさん (ワッチョイ 124b-+Ykt)
2019/10/22(火) 23:10:49.55ID:Qb6PF4Ej0 そもそも2行目からスタートすればいいのでは
424デフォルトの名無しさん (アークセー Sx47-UVSK)
2019/10/22(火) 23:11:06.82ID:IKwAwtn1x 縞模様のテーブルスタイルをあらかじめ定義しておいて、テーブル変換してスタイルを適用してからテーブルを範囲に転換するのが一番楽だよ
425デフォルトの名無しさん (ワッチョイ 9268-S3Tg)
2019/10/23(水) 06:33:53.41ID:3xysxys80 >>421
ifは見づらいだけだよ
100%、forを2から始めた方が良い
For i = 1 To z '繰り返し処理を使い、変数は1〜500
if i >1 then
'ここに全部入れる
endif
Next i
ifは見づらいだけだよ
100%、forを2から始めた方が良い
For i = 1 To z '繰り返し処理を使い、変数は1〜500
if i >1 then
'ここに全部入れる
endif
Next i
426デフォルトの名無しさん (ワントンキン MM42-vsgv)
2019/10/23(水) 08:42:06.06ID:F6dTtsAKM >>421
範囲内を塗るだけなら、最初のFor〜Nextはいらない。
範囲全体を22番で塗った後に奇数行に処理するのではなく、
範囲全体を13番で塗った後に偶数行に処理する、
とすれば、1行目の処理のIf文いらない。
Sub xxxxxxx()
Dim i As Integer
Dim z As Integer
Dim y As Integer
z = 500
y = 300
Range(Cells(2, 1), Cells(z, y)).Interior.ColorIndex = 13
For i = 2 To z Step 2
Range(Cells(i, 1), Cells(i, y)).Interior.ColorIndex = 22
Next i
End Sub
>2.1行目だけ何もしない(色を変えない)
っていうのは元々色が付いていたらその色から変えてはいけないって意味だよね。
そうすると
1行目を含めて塗った後、勝手にInterior.ColorIndex = 00であったとと決めつけて処理するのはよろしくない。
範囲内を塗るだけなら、最初のFor〜Nextはいらない。
範囲全体を22番で塗った後に奇数行に処理するのではなく、
範囲全体を13番で塗った後に偶数行に処理する、
とすれば、1行目の処理のIf文いらない。
Sub xxxxxxx()
Dim i As Integer
Dim z As Integer
Dim y As Integer
z = 500
y = 300
Range(Cells(2, 1), Cells(z, y)).Interior.ColorIndex = 13
For i = 2 To z Step 2
Range(Cells(i, 1), Cells(i, y)).Interior.ColorIndex = 22
Next i
End Sub
>2.1行目だけ何もしない(色を変えない)
っていうのは元々色が付いていたらその色から変えてはいけないって意味だよね。
そうすると
1行目を含めて塗った後、勝手にInterior.ColorIndex = 00であったとと決めつけて処理するのはよろしくない。
427デフォルトの名無しさん (ワッチョイ 6f87-7R73)
2019/10/23(水) 08:44:11.12ID:u2hf1X8z0 >>422-425
有難うございます。
間違いなく、Forのところを2行目からにする方が簡潔でいいと思うのですが、無理矢理if文を入れるとするとどうすべきかを知りたかった部分もあったので、大変助かりました。
有難うございます。
間違いなく、Forのところを2行目からにする方が簡潔でいいと思うのですが、無理矢理if文を入れるとするとどうすべきかを知りたかった部分もあったので、大変助かりました。
428デフォルトの名無しさん (ワッチョイ 6f87-7R73)
2019/10/23(水) 08:56:18.27ID:u2hf1X8z0429デフォルトの名無しさん (ワッチョイ 1ef7-V+wO)
2019/10/23(水) 09:28:03.44ID:zKPC6jha0 奇遇判定ならIfよりSelect Caseで分けると楽かな
Dim cngRng As Excel.Range
Set cngRng = Excel.Application.Range("A1:E20")
'範囲から上一列を除外
Set cngRng = cngRng.Offset(1, 0).Resize(cngRng.Rows.Count - 1, cngRng.Columns.Count)
Dim colorNum As Long
Dim r As Excel.Range
For Each r In cngRng.Rows
Select Case r.Row Mod 2 '行番号を2で割った余り
Case 0
colorNum = 1 '1=Black
Case 1
colorNum = 6 '6=Yellow
End Select
r.Interior.ColorIndex = colorNum
Next r
Dim cngRng As Excel.Range
Set cngRng = Excel.Application.Range("A1:E20")
'範囲から上一列を除外
Set cngRng = cngRng.Offset(1, 0).Resize(cngRng.Rows.Count - 1, cngRng.Columns.Count)
Dim colorNum As Long
Dim r As Excel.Range
For Each r In cngRng.Rows
Select Case r.Row Mod 2 '行番号を2で割った余り
Case 0
colorNum = 1 '1=Black
Case 1
colorNum = 6 '6=Yellow
End Select
r.Interior.ColorIndex = colorNum
Next r
430デフォルトの名無しさん (ワントンキン MM42-+Ykt)
2019/10/23(水) 10:14:44.78ID:pOBwJdgAM リーダブルコードとか読んでみたらいいんじゃないか
431デフォルトの名無しさん (ワッチョイ 6bce-S3Tg)
2019/10/23(水) 10:35:16.84ID:Bv/wwg6O0 z = 500 '最大行数
For r = 2 To z Step 2
'偶数
Next
For r = 3 To z Step 2
'奇数
Next
For r = 2 To z Step 2
'偶数
Next
For r = 3 To z Step 2
'奇数
Next
432デフォルトの名無しさん (ワッチョイ 371a-8Pqf)
2019/10/23(水) 10:39:27.17ID:9YAnqBFd0 Rangeをつかってセルの範囲を指定した後に
条件を付け加えて条件に合うまで自動で繰り返し処理を行って条件通りになった時に選択セルに文字や数字を入れるにはその下にIfとかで条件を増やしていけばいいの?
条件を付け加えて条件に合うまで自動で繰り返し処理を行って条件通りになった時に選択セルに文字や数字を入れるにはその下にIfとかで条件を増やしていけばいいの?
433デフォルトの名無しさん (オッペケ Sr47-UVSK)
2019/10/23(水) 12:32:05.46ID:YTHJUc03r >>432
条件が簡単で範囲が狭ければ上にあるようにselect caseが分かりやすい
for each c in range("a5:b20")
select case c
case 1
c=c+1
end select
next
条件が簡単で範囲が狭ければ上にあるようにselect caseが分かりやすい
for each c in range("a5:b20")
select case c
case 1
c=c+1
end select
next
434デフォルトの名無しさん (スッップ Sd1f-5/kr)
2019/10/24(木) 12:24:28.14ID:UjAlYEh+d435デフォルトの名無しさん (ベーイモ MMff-CM8p)
2019/10/24(木) 18:18:50.61ID:uab6eG2kM ExcelでOutlookのメールを処理することについての質問なのですが、ここのスレでよろしいでしょうか。
https://docs.microsoft.com/ja-jp/office/vba/api/outlook.items.getlast
getlastメソッドで、メールを取得するのですが、たまに取得できないことがあります。(たぶんNothing?が帰ってくる。Nothingでない可能性もある。)(メールアイテム以外でも動作確認済。)
getlastメソッドで、取得失敗した場合には5秒待機してもう一度getlastメソッドを行い、最大20回繰り返す処理にしても、たまにメールの取得に失敗します。
ログを確認すると、メールを受信した時間にエラーが起きているようでした。(自身が送信したメールであるかは未確認)
ちなみに、共有受信フォルダに対して処理を行なっています。
メールの取得がうまくいかない原因として何が考えられるでしょうか?
また対策もお教えいただければ。
よろしくお願いします。
https://docs.microsoft.com/ja-jp/office/vba/api/outlook.items.getlast
getlastメソッドで、メールを取得するのですが、たまに取得できないことがあります。(たぶんNothing?が帰ってくる。Nothingでない可能性もある。)(メールアイテム以外でも動作確認済。)
getlastメソッドで、取得失敗した場合には5秒待機してもう一度getlastメソッドを行い、最大20回繰り返す処理にしても、たまにメールの取得に失敗します。
ログを確認すると、メールを受信した時間にエラーが起きているようでした。(自身が送信したメールであるかは未確認)
ちなみに、共有受信フォルダに対して処理を行なっています。
メールの取得がうまくいかない原因として何が考えられるでしょうか?
また対策もお教えいただければ。
よろしくお願いします。
436デフォルトの名無しさん (ワントンキン MMe7-9ZKN)
2019/10/24(木) 18:54:50.60ID:9FPqNGzPM getlastしようとしてるオブジェクトが空なんじゃないの
当然何度やってもダメでしょうし
オブジェクトの指定を見直すしかないのでは
当然何度やってもダメでしょうし
オブジェクトの指定を見直すしかないのでは
437デフォルトの名無しさん (オッペケ Sr47-7WON)
2019/10/24(木) 21:16:31.40ID:LTozGfJsr >>435
マクロ実行のタイミングで新着がある場合に失敗することがある
マクロ実行のタイミングで新着がある場合に失敗することがある
438デフォルトの名無しさん (アークセー Sx47-7WON)
2019/10/24(木) 22:19:08.24ID:k4Slgj9Ox >>435
outlookの受信処理と競合して、完全にダウンロードされていないアイテムを掴んで処理が失敗してしまってるんじゃないかな
ActiveExplorer.CommandBars.ExecuteMso ("ToggleOnline")でオンライン/オフラインのモードを切り替えられるので、オフラインモードにしてから受信済のアイテムを操作してみたらどうかな
outlookの受信処理と競合して、完全にダウンロードされていないアイテムを掴んで処理が失敗してしまってるんじゃないかな
ActiveExplorer.CommandBars.ExecuteMso ("ToggleOnline")でオンライン/オフラインのモードを切り替えられるので、オフラインモードにしてから受信済のアイテムを操作してみたらどうかな
439デフォルトの名無しさん (ワッチョイ ff42-CM8p)
2019/10/24(木) 23:23:46.93ID:Asf3hx3R0440デフォルトの名無しさん (アークセー Sx47-7WON)
2019/10/24(木) 23:31:06.94ID:0B+H0gI/x >>439
438をポストした者だけど、共有メールボックスではコマンドバー操作を試していないので、うまくいかなかったら申し訳ない
438をポストした者だけど、共有メールボックスではコマンドバー操作を試していないので、うまくいかなかったら申し訳ない
441デフォルトの名無しさん (ワッチョイ c31a-hRK6)
2019/10/25(金) 11:05:50.13ID:dGLThU1d0 >>434
どういう事?
どういう事?
442デフォルトの名無しさん (ワッチョイ 6f68-7KPZ)
2019/10/25(金) 11:29:44.18ID:cKRHja930 選択されてる範囲に勝手に入力されるのは困ると捉えるか
使う側が指定した範囲に効果を適用したいと捉えるかの違いでは
使う側が指定した範囲に効果を適用したいと捉えるかの違いでは
443デフォルトの名無しさん (ワッチョイ e301-X3cA)
2019/10/25(金) 22:22:49.14ID:l2RnHcFL0 >>429
むしろ遇奇なら一行ifを使ったほうが簡潔だよ
If r.Row Mod 2 Then r.Interior.ColorIndex = 6 Else r.Interior.ColorIndex = 1
また、「colorNum」を「r.Row Mod 2」の関数とみなせば
Dim colorNum(): colorNum = Array(1, 6) '配列で代用
(中略)
r.Interior.ColorIndex = colorNum(r.Row Mod 2)
という形になる。
また、「r.Row Mod *」の除数は「colorNum」の要素数なので
Dim modSecond as Long : modSecond = Ubound(colorNum) - Lbound(colorNum) + 1
r.Interior.ColorIndex = colorNum(r.Row Mod modSecond)
と一般化できる。
これはIf文やSelect文と違い、colorNumを与えれば三色以上にも動的に対応出来る。
>>441
Selectメソッド使わなくてもセルに入力できるよっていう話だと思う
マクロを記録すると当然セル選択(Select)も全部記録するし、「選択してから操作する」は直感的にも正しいから、
初めてVBAを触る人はSelect必須だと勘違いしやすい
実際は「マクロが動いてる様子が見れないと不安だ」っていう人も少なからずいて、わざとSelectすることはよくある
むしろ遇奇なら一行ifを使ったほうが簡潔だよ
If r.Row Mod 2 Then r.Interior.ColorIndex = 6 Else r.Interior.ColorIndex = 1
また、「colorNum」を「r.Row Mod 2」の関数とみなせば
Dim colorNum(): colorNum = Array(1, 6) '配列で代用
(中略)
r.Interior.ColorIndex = colorNum(r.Row Mod 2)
という形になる。
また、「r.Row Mod *」の除数は「colorNum」の要素数なので
Dim modSecond as Long : modSecond = Ubound(colorNum) - Lbound(colorNum) + 1
r.Interior.ColorIndex = colorNum(r.Row Mod modSecond)
と一般化できる。
これはIf文やSelect文と違い、colorNumを与えれば三色以上にも動的に対応出来る。
>>441
Selectメソッド使わなくてもセルに入力できるよっていう話だと思う
マクロを記録すると当然セル選択(Select)も全部記録するし、「選択してから操作する」は直感的にも正しいから、
初めてVBAを触る人はSelect必須だと勘違いしやすい
実際は「マクロが動いてる様子が見れないと不安だ」っていう人も少なからずいて、わざとSelectすることはよくある
444デフォルトの名無しさん (ブーイモ MM1f-FIMf)
2019/10/26(土) 12:54:04.66ID:eBBCRY7lM このまえ職場のITの人が
「サーバがコケた」と言ってました。
「コケた」とはなんですか?
サーバに足が二本あってその足がもつれてサーバが倒れた?
「サーバがコケた」と言ってました。
「コケた」とはなんですか?
サーバに足が二本あってその足がもつれてサーバが倒れた?
445デフォルトの名無しさん (ワッチョイ ff38-RFIa)
2019/10/26(土) 15:23:13.25ID:ByENxD/q0 すいません
「いま選択しているセル(1セルのみ選択します)の中心に、
[行の先頭(Aの左端)]から[設定されている印刷範囲の右まで]
オートシェイプの罫線を引く」
、というマクロを作成し始めているのですが、
[印刷範囲の右まで] という指定はどのように記述したらよいでしょうか?
いまのところ検索しつつ手習いでこんな記述になったのですが、
Sub マクロ名()
Dim R As Range
Set R = Selection
With ActiveSheet.Shapes.AddLine(R.Left - R.Left, R.Top + R.Height / 2, [ ], R.Top + R.Height / 2).Line
End With
End Sub
[ ]の中に[印刷範囲の右まで]という意味合いを
挿入すればできるのかしらと思っています
[Aの左端]を指定するのに
[選択範囲の右までの距離から、選択範囲の右までの距離を引いたもの]で
距離がゼロになったはウフフ としているのも
「・・・他にビシッとした命令文があるんじゃないかね」と思っているので
ここもご教示いただければ幸いです
「いま選択しているセル(1セルのみ選択します)の中心に、
[行の先頭(Aの左端)]から[設定されている印刷範囲の右まで]
オートシェイプの罫線を引く」
、というマクロを作成し始めているのですが、
[印刷範囲の右まで] という指定はどのように記述したらよいでしょうか?
いまのところ検索しつつ手習いでこんな記述になったのですが、
Sub マクロ名()
Dim R As Range
Set R = Selection
With ActiveSheet.Shapes.AddLine(R.Left - R.Left, R.Top + R.Height / 2, [ ], R.Top + R.Height / 2).Line
End With
End Sub
[ ]の中に[印刷範囲の右まで]という意味合いを
挿入すればできるのかしらと思っています
[Aの左端]を指定するのに
[選択範囲の右までの距離から、選択範囲の右までの距離を引いたもの]で
距離がゼロになったはウフフ としているのも
「・・・他にビシッとした命令文があるんじゃないかね」と思っているので
ここもご教示いただければ幸いです
446デフォルトの名無しさん (ワッチョイ ff95-mjLV)
2019/10/26(土) 15:26:44.03ID:a/Ne+y1n0 >>374
殿堂入りのコピペにしよう
殿堂入りのコピペにしよう
447デフォルトの名無しさん (アークセー Sx47-7WON)
2019/10/26(土) 15:51:51.18ID:LZqRDs7Rx >>445
印刷範囲はActiveSheet.PageSetup.PrintAreaで取得できる
印刷範囲の右端列のうち選択セルRと同じ行にあるセル範囲を取得するならば、こんな感じになるかな
試してないのでうまくいかなかったらごめん
With ActiveSheet
.Cells(R.Row, .PageSetup.PrintArea.Columns(.PageSetup.PrintArea.Columns.Count).Column)
End With
印刷範囲はActiveSheet.PageSetup.PrintAreaで取得できる
印刷範囲の右端列のうち選択セルRと同じ行にあるセル範囲を取得するならば、こんな感じになるかな
試してないのでうまくいかなかったらごめん
With ActiveSheet
.Cells(R.Row, .PageSetup.PrintArea.Columns(.PageSetup.PrintArea.Columns.Count).Column)
End With
448デフォルトの名無しさん (ワッチョイ 23c4-BHPo)
2019/10/26(土) 17:22:53.91ID:gStMXt400 列の右端左端の値を取ろうとxltoright/xltoleftを使ったやり方したんだけど、普通に値が入ってるのは大丈夫だったのだけど、計算式が入っているのはダメだった…
どうしたら計算式でも値が入ってる最終、最初の列の値を取れるのでしょう…
一応値貼り付けをしてみたけどダメでした。
どうしたら計算式でも値が入ってる最終、最初の列の値を取れるのでしょう…
一応値貼り付けをしてみたけどダメでした。
449デフォルトの名無しさん (アークセー Sx47-7WON)
2019/10/26(土) 17:42:49.95ID:r1v5ZtYZx >>448
RangeオブジェクトのCurrentRegionプロパティで解決できる
RangeオブジェクトのCurrentRegionプロパティで解決できる
450デフォルトの名無しさん (ワッチョイ b39e-KT7O)
2019/10/26(土) 18:39:46.37ID:iVpeMUgw0 listviewが使えない状態でフルパスをドラッグドロップで取得したいんですが可能ですか。
vbsでバッチファイル経由でも良いのですが
excel上にマクロボタンを設置し
listviewのようにバッチファイル自体にドラッグドロップするのではなく
エクセル内にドラッグドロップしフルパスを取得したいです。
ご教示お願いします。
vbsでバッチファイル経由でも良いのですが
excel上にマクロボタンを設置し
listviewのようにバッチファイル自体にドラッグドロップするのではなく
エクセル内にドラッグドロップしフルパスを取得したいです。
ご教示お願いします。
451デフォルトの名無しさん (スップ Sd1f-mumX)
2019/10/26(土) 19:02:55.77ID:fijtr2QZd OutlookとかVBAとかいつの時代を生きてんの?
そろそろ進もうよ
そろそろ進もうよ
452デフォルトの名無しさん (スフッ Sd1f-omNk)
2019/10/26(土) 19:12:27.63ID:KoMfhOgAd うちもOutlook。しかも2007
453デフォルトの名無しさん (アークセー Sx47-7WON)
2019/10/26(土) 19:24:57.11ID:2Jq8ZMU0x >>451
Office365でOutlookクライアントネイティブでマクロ実行するときもOutlook VBAが使えて便利だぞ
Excel VBAでもPowerPivotや PowerQueryみたいなモダンな機能を扱えるし何かと便利
あとVBAは古くて癖があるけど、やっぱりMS Office自体は有用だし、他言語でCOM生成したりMS Office Interopを使ったりする手間を考えたらVBAを使う手間と大差ない
Office365でOutlookクライアントネイティブでマクロ実行するときもOutlook VBAが使えて便利だぞ
Excel VBAでもPowerPivotや PowerQueryみたいなモダンな機能を扱えるし何かと便利
あとVBAは古くて癖があるけど、やっぱりMS Office自体は有用だし、他言語でCOM生成したりMS Office Interopを使ったりする手間を考えたらVBAを使う手間と大差ない
454デフォルトの名無しさん (ワッチョイ ffda-MdJ4)
2019/10/26(土) 21:43:16.86ID:3NuDJQUH0 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2019
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
ちょっと頭のおかしい感じにしてみたんですけど、どうでしょう?
Sub 猿()
'@@@@@@@@@@@@@@@@@@
Dim 日本脳炎, 邪教, 脳梗塞
'@@@@@@@@@@@@@@@@@@
End Sub
Sub 呪呪呪呪呪呪呪呪()
'死死死死死死死死死死死死
Dim あああああああああああ
'死死死死死死死死死死死死
End Sub
【2 Excelのバージョン 】 Excel2019
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
ちょっと頭のおかしい感じにしてみたんですけど、どうでしょう?
Sub 猿()
'@@@@@@@@@@@@@@@@@@
Dim 日本脳炎, 邪教, 脳梗塞
'@@@@@@@@@@@@@@@@@@
End Sub
Sub 呪呪呪呪呪呪呪呪()
'死死死死死死死死死死死死
Dim あああああああああああ
'死死死死死死死死死死死死
End Sub
455デフォルトの名無しさん (ワッチョイ b37c-JGMk)
2019/10/26(土) 21:44:56.09ID:w2sb5QGz0 >>454
ここはExcelスレじゃない
ここはExcelスレじゃない
456デフォルトの名無しさん (ワッチョイ 43c3-nkui)
2019/10/27(日) 04:54:35.83ID:iIC7Qe/E0 33sands's blog: VBAでpushやpopができる配列クラスを実装しました
http://33sands.blogspot.com/2012/03/vbapushpop.html
このブログで、VBA自作配列クラスが公開されていたようですが、ファイルが消えていました。
ここで公開されていたファイルをお持ちの方はいませんでしょうか?
http://33sands.blogspot.com/2012/03/vbapushpop.html
このブログで、VBA自作配列クラスが公開されていたようですが、ファイルが消えていました。
ここで公開されていたファイルをお持ちの方はいませんでしょうか?
457デフォルトの名無しさん (ワッチョイ ff68-mjLV)
2019/10/27(日) 07:39:28.03ID:LP8uAzFd0 いないよw
458デフォルトの名無しさん (ワッチョイ 53ce-mjLV)
2019/10/27(日) 07:48:21.99ID:5kDmbxH+0 WebArchive
459デフォルトの名無しさん (ワッチョイ 23c4-BHPo)
2019/10/27(日) 08:55:23.11ID:1nxyxlWe0460デフォルトの名無しさん (ワッチョイ ffda-MdJ4)
2019/10/27(日) 09:08:45.25ID:7A1wEn3c0 >>456
そこに書いてある Ubound(配列) + 1 ってのは、よく見かける見る例で、
ループ内で使うと思うんだけど、毎回配列の最大数調べてたら遅くならんかなぁ。
俺は a = a + 1 にしちゃうけど、変わらんか?
そこに書いてある Ubound(配列) + 1 ってのは、よく見かける見る例で、
ループ内で使うと思うんだけど、毎回配列の最大数調べてたら遅くならんかなぁ。
俺は a = a + 1 にしちゃうけど、変わらんか?
461デフォルトの名無しさん (ワッチョイ ff68-mjLV)
2019/10/27(日) 10:16:44.42ID:LP8uAzFd0 >>460
VBAでpushを実装しようと思うとこうするしかないぞ
VBAでpushを実装しようと思うとこうするしかないぞ
462デフォルトの名無しさん (ワッチョイ ff01-3qLD)
2019/10/27(日) 11:21:18.40ID:vcUKQgsd0463デフォルトの名無しさん (ワッチョイ 23c4-BHPo)
2019/10/27(日) 11:24:16.68ID:1nxyxlWe0 >>449
currentregionプロパティで下記のは可能でしょうか?
ABCDEFGHI(列名)
q 12 33 q
A〜I列の内、B〜H列内で数字がある最初と最後の列番号を取得したいと思ってます。
通常では448に書いたようにB〜H列を指定して.ENDでxltoleft/rightを使い2行と2つの変数に結果を入れる事でできたのですが、計算式だとNGだったので(どちらもH列が帰ってきました)
currentregionプロパティで下記のは可能でしょうか?
ABCDEFGHI(列名)
q 12 33 q
A〜I列の内、B〜H列内で数字がある最初と最後の列番号を取得したいと思ってます。
通常では448に書いたようにB〜H列を指定して.ENDでxltoleft/rightを使い2行と2つの変数に結果を入れる事でできたのですが、計算式だとNGだったので(どちらもH列が帰ってきました)
464デフォルトの名無しさん (ワッチョイ b37c-JGMk)
2019/10/27(日) 12:19:45.36ID:jv/fzOi30 >>456
なんで作者本人に連絡取らんの
なんで作者本人に連絡取らんの
465デフォルトの名無しさん (ワッチョイ cfdd-MdJ4)
2019/10/27(日) 13:19:15.84ID:5V6/K/A10 >>463
計算結果が数値の最初と最後の列ってこと?
xlToLeft; xlToRight; はセルが空かどうかでしか判断できないから使えないでしょ?
開始列と終了列からそれぞれなめて、IsNumeric(.value) で判定しないとダメじゃないかな。
なんかいい方法あるけ?
計算結果が数値の最初と最後の列ってこと?
xlToLeft; xlToRight; はセルが空かどうかでしか判断できないから使えないでしょ?
開始列と終了列からそれぞれなめて、IsNumeric(.value) で判定しないとダメじゃないかな。
なんかいい方法あるけ?
466デフォルトの名無しさん (アークセー Sx47-7WON)
2019/10/27(日) 14:10:23.14ID:lm+G5EAgx >>456
よく見てないけど計算量最適化できてなさそうだね
よく見てないけど計算量最適化できてなさそうだね
467デフォルトの名無しさん (アークセー Sx47-7WON)
2019/10/27(日) 14:42:36.79ID:lm+G5EAgx >>463
CurrentRegionでは恐らく無理
下のようにループを左右両側から回して調べるしかないんじゃないかな
列番号をチェックする行に含まれるセルを選択している状態という前提です
Dim RngA2I As Range 'チェック対象行のA列からI列までの範囲
Dim i As Long 'ループ用インデックス
Dim LMost As Long '左端列の列番号
Dim RMost As Long '右端列の列番号
With ActiveSheet
Set RngA2I = .Cells(.Cells(Selection.Row, 1), .Cells(Selection.Row, 9))
End With
For i = 2 To 8
If IsNumeric(RngA2I.Item(i).Value) Then
LMost = i
Exit For
End If
Next
For i = 8 To 2 Step - 1
If IsNumeric(RngA2I.Item(i).Value) Then
RMost = i
Exit For
End If
Next
CurrentRegionでは恐らく無理
下のようにループを左右両側から回して調べるしかないんじゃないかな
列番号をチェックする行に含まれるセルを選択している状態という前提です
Dim RngA2I As Range 'チェック対象行のA列からI列までの範囲
Dim i As Long 'ループ用インデックス
Dim LMost As Long '左端列の列番号
Dim RMost As Long '右端列の列番号
With ActiveSheet
Set RngA2I = .Cells(.Cells(Selection.Row, 1), .Cells(Selection.Row, 9))
End With
For i = 2 To 8
If IsNumeric(RngA2I.Item(i).Value) Then
LMost = i
Exit For
End If
Next
For i = 8 To 2 Step - 1
If IsNumeric(RngA2I.Item(i).Value) Then
RMost = i
Exit For
End If
Next
468デフォルトの名無しさん (ワッチョイ ff01-3qLD)
2019/10/27(日) 14:55:15.64ID:vcUKQgsd0 >>466
中身わからんのに計算量を推定できるとかエスパーかよw
中身わからんのに計算量を推定できるとかエスパーかよw
469デフォルトの名無しさん (ワッチョイ b37c-JGMk)
2019/10/27(日) 16:12:11.26ID:jv/fzOi30 >>463
With Range("B:H")
'最初
.Find(What:="*", LookIn:=xlValues, SearchOrder:=xlByColumns, SearchDirection:=xlNext).Column
'最後
.Find(What:="*", LookIn:=xlValues, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
End With
値が入ってるセルが1つも無いとエラーになるから事前にチェックしておく
With Range("B:H")
'最初
.Find(What:="*", LookIn:=xlValues, SearchOrder:=xlByColumns, SearchDirection:=xlNext).Column
'最後
.Find(What:="*", LookIn:=xlValues, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
End With
値が入ってるセルが1つも無いとエラーになるから事前にチェックしておく
470デフォルトの名無しさん (ワッチョイ cfdd-MdJ4)
2019/10/27(日) 16:59:16.22ID:5V6/K/A10471デフォルトの名無しさん (ワッチョイ b37c-JGMk)
2019/10/27(日) 17:02:26.90ID:jv/fzOi30 数字限定?なら>>469は忘れて
472デフォルトの名無しさん (スプッッ Sd1f-mumX)
2019/10/27(日) 17:36:39.44ID:aJJKs/ARd 今の時代でマルチスレッドが使えない時点で終わってる
>>472
マルチスレッドプログラミングは難しいので、なにか適切な抽象化方策が言語でとられるべきかと
マルチスレッドプログラミングは難しいので、なにか適切な抽象化方策が言語でとられるべきかと
474デフォルトの名無しさん (アークセー Sx47-7WON)
2019/10/27(日) 20:13:15.91ID:lm+G5EAgx >>468
Redimで連続アドレス領域を都度確保するのが効率悪いって言いたいだけなんだが
Redimで連続アドレス領域を都度確保するのが効率悪いって言いたいだけなんだが
475デフォルトの名無しさん (ワッチョイ 23c4-BHPo)
2019/10/27(日) 20:14:07.93ID:1nxyxlWe0 >>467
やはり両方から確認しにいくのが確実ですよね。
他の部署から来るデータで2シートだけは単純に空白と数値だけなのですが、他のファイルにある1シートだけは計算式入ってたので…
まぁ、最初と最後だけ確認してから他の作業をさせればいいので、これ参考にさせていただきます。
ありがとうございました。
やはり両方から確認しにいくのが確実ですよね。
他の部署から来るデータで2シートだけは単純に空白と数値だけなのですが、他のファイルにある1シートだけは計算式入ってたので…
まぁ、最初と最後だけ確認してから他の作業をさせればいいので、これ参考にさせていただきます。
ありがとうございました。
476デフォルトの名無しさん (ワッチョイ 23c4-BHPo)
2019/10/27(日) 20:16:11.25ID:1nxyxlWe0477デフォルトの名無しさん (ドコグロ MMc7-3qLD)
2019/10/27(日) 21:21:01.09ID:rrcAfXPkM478デフォルトの名無しさん (アークセー Sx47-7WON)
2019/10/27(日) 23:13:53.49ID:lm+G5EAgx479デフォルトの名無しさん (ワッチョイ 7f4b-9ZKN)
2019/10/27(日) 23:43:54.17ID:qu9l82Nk0 面倒臭いからVBA使うんだろ
480デフォルトの名無しさん (アークセー Sx47-7WON)
2019/10/27(日) 23:53:42.61ID:lm+G5EAgx AccessやPowerQueryを知らずに言ってるんだろうがテーブルへのクエリをExcel VBAでスクラッチする方が遥かに面倒だぞ
481デフォルトの名無しさん (ワッチョイ 7f4b-9ZKN)
2019/10/27(日) 23:55:56.34ID:qu9l82Nk0 448のどこがaccess、powerquery向きなのか理解出来ない
482デフォルトの名無しさん (アウアウウー Sa27-wnNP)
2019/10/28(月) 01:11:50.89ID:DN6aA2bKa 最初からデータをDBへ入れて扱っていれば「端の値を取る」などというトンデモ要件はそもそも出てこないということだろう
業務ロジックの中でシートの右だの左だの何列目だのとシート上でのレイアウトに依存したコードが散乱するのは典型的な悪夢
業務ロジックの中でシートの右だの左だの何列目だのとシート上でのレイアウトに依存したコードが散乱するのは典型的な悪夢
483デフォルトの名無しさん (アウアウクー MM47-BHPo)
2019/10/28(月) 08:44:07.27ID:ECOvCBlTM 448です。
元は手作業でやっていたのを自動化?したいとかで外の会社とかも関わってるので、DB化とかそういう話になるとメンドクサイ事になるらしいです。
自分は他から来ているので、あまり口出しできない状態。
あと、作業の行にカレンダーがあって、そのカレンダーに数字が入力されてる感じです。
なので月ごとに場所が変わったりするので…
そんなのが数百行あるので、少しでもその作業の先頭列が分かれば…と思っていたのですが…
元は手作業でやっていたのを自動化?したいとかで外の会社とかも関わってるので、DB化とかそういう話になるとメンドクサイ事になるらしいです。
自分は他から来ているので、あまり口出しできない状態。
あと、作業の行にカレンダーがあって、そのカレンダーに数字が入力されてる感じです。
なので月ごとに場所が変わったりするので…
そんなのが数百行あるので、少しでもその作業の先頭列が分かれば…と思っていたのですが…
484デフォルトの名無しさん (アウアウクー MM47-BHPo)
2019/10/28(月) 08:46:00.28ID:ECOvCBlTM >>482
確かに…
Excelで手作業だったって事もあって、項目によっては行が結合されていたりとかもあってさらにメンドクサイ状態。
そのへんなんとかしてほしいのだが、そうなると外の会社との折衝にもなるらしいのでNGっぽい…orz
確かに…
Excelで手作業だったって事もあって、項目によっては行が結合されていたりとかもあってさらにメンドクサイ状態。
そのへんなんとかしてほしいのだが、そうなると外の会社との折衝にもなるらしいのでNGっぽい…orz
485デフォルトの名無しさん (ワッチョイ cfd2-Z4kd)
2019/10/28(月) 11:38:38.31ID:aHKY+muw0 プログラミングスレで聞くのが妥当か分からないけど
マクロの記録を使って「データ分析」ツールをSheet1、Sheet2....Sheet13と起動していくマクロを作ろうとしてるんだけど、どういうわけか「データ分析」で生成された表が現れるSheetと現れないシートにムラがある
規則性はないように思われる
なにかわかることありますかね
マクロの記録を使って「データ分析」ツールをSheet1、Sheet2....Sheet13と起動していくマクロを作ろうとしてるんだけど、どういうわけか「データ分析」で生成された表が現れるSheetと現れないシートにムラがある
規則性はないように思われる
なにかわかることありますかね
486デフォルトの名無しさん (ワッチョイ c3b0-OGTw)
2019/10/28(月) 12:42:09.32ID:w6LeaWY50 Mac版でcontrol+Shift+5で%が付くようにしたのですがこの設定を元に戻すショートカットってありますか?
487デフォルトの名無しさん (ブーイモ MM1f-DyET)
2019/10/29(火) 04:42:35.22ID:pjDEMxXCM userformの選択されているcheckboxのcaptionを変数にまとめてautofilterでデータ抽出しようとしているのですがうまくいきません
ちなみにそのような方法でautofilterをかけることは可能でしょうか?
よくわかんない質問ですいませんがよろしくお願いします
ちなみにそのような方法でautofilterをかけることは可能でしょうか?
よくわかんない質問ですいませんがよろしくお願いします
488デフォルトの名無しさん (ワッチョイ ffea-/P2k)
2019/10/29(火) 05:23:49.56ID:5vXI5Cgx0489デフォルトの名無しさん (ワッチョイ ffd2-hRK6)
2019/10/29(火) 17:33:39.24ID:VP7O6DBE0 看護師の勤務表を作りたいけど何からやればいいか分からないです。教えてください
490デフォルトの名無しさん (ワッチョイ ff42-cmPQ)
2019/10/29(火) 17:46:30.71ID:/hC7c7vt0 単純に勤務表ってだけなら表計算でできることなのでエクセルスレへどうぞ(厳密には表計算ですら無いけど)
VBAは大雑把に言うと表計算だけでは実現でいないことをやるための技術です
VBAは大雑把に言うと表計算だけでは実現でいないことをやるための技術です
491デフォルトの名無しさん (ワッチョイ ffd2-hRK6)
2019/10/29(火) 17:51:20.57ID:VP7O6DBE0 VBA使わずに自動で1ヶ月分作れるんですか?
492デフォルトの名無しさん (スフッ Sd1f-omNk)
2019/10/29(火) 18:01:49.00ID:489rbQ/pd Office365のカレンダーがいいよ
493デフォルトの名無しさん (ワッチョイ ff42-cmPQ)
2019/10/29(火) 18:03:40.61ID:/hC7c7vt0 その場合は必要
後出しで条件を追加すると話が長くなるし回答も二度手間になるので最初にやりたいことをきっちり説明すべし
後出しで条件を追加すると話が長くなるし回答も二度手間になるので最初にやりたいことをきっちり説明すべし
494デフォルトの名無しさん (スッップ Sd1f-Z4kd)
2019/10/29(火) 18:11:33.96ID:NgUa+H/Id 配列に入ってる値をセルに一個ずつ入れたいのですが、
for i = LBound(配列) to UBound(配列)
Cells(i.1).value = 配列(i)
Next i
こう書くと型が違いますとエラーになります
どうすればいいですか?
for i = LBound(配列) to UBound(配列)
Cells(i.1).value = 配列(i)
Next i
こう書くと型が違いますとエラーになります
どうすればいいですか?
495デフォルトの名無しさん (アウアウクー MM47-M947)
2019/10/29(火) 18:12:54.47ID:xRagZ8fLM 勤務表を自動で作成したいとなれば、アルゴリズムの知識がないと実装できないと思う。ナース・スケジューリング問題とか調べてみるといい。参考になる文献が出てくる。ただ、いっそのこと有料ソフトを買った方が早い気がする。
496デフォルトの名無しさん (ワッチョイ 6ff7-I5l6)
2019/10/29(火) 18:23:00.38ID:nykYL9OH0 >>494
そらi=0から始まるけどセルに座標0はないんで
そらi=0から始まるけどセルに座標0はないんで
497デフォルトの名無しさん (オッペケ Sr47-7WON)
2019/10/29(火) 18:26:41.51ID:cRJ9A2Q6r498デフォルトの名無しさん (オッペケ Sr47-7WON)
2019/10/29(火) 18:28:33.17ID:cRJ9A2Q6r 訂正
transpose
transpose
499デフォルトの名無しさん (ワッチョイ 6ff7-I5l6)
2019/10/29(火) 18:35:46.74ID:nykYL9OH0 Cells(i+1,1).valueかCells(1,1).Offset(i,0).valueにする
500デフォルトの名無しさん (ワッチョイ cf8e-FPtM)
2019/10/29(火) 18:36:33.04ID:CZCLEAoQ0 >>489
馬鹿は死ね
馬鹿は死ね
501デフォルトの名無しさん (スップ Sd1f-mumX)
2019/10/29(火) 18:41:35.33ID:VPqdpMYqd エクセル以外のソフトをインストール出来ないってアホみたいな環境はソッコーで辞めた方が良い
VBAなんて将来性もないクソ言語を覚える意味は全くない
本当に他の開発環境は無理なの?
冗談だよね?
VBAなんて将来性もないクソ言語を覚える意味は全くない
本当に他の開発環境は無理なの?
冗談だよね?
502デフォルトの名無しさん (ワッチョイ ffd2-hRK6)
2019/10/29(火) 19:27:11.79ID:VP7O6DBE0 >>500
おう。お前が死んどけ
おう。お前が死んどけ
503デフォルトの名無しさん (ササクッテロル Sp47-YkOl)
2019/10/29(火) 19:48:08.52ID:+Y5A9Qhrp >>494
取り敢えずみんなが言ってる通り配列のインデックスは0から始まるし
Cellは行にしても列にしても1から始まるのでそこんとこ気をつけなければいけません。
後はセル指定する際にはブック、シートも指定しておく癖をつけておくことをお勧めします。
取り敢えずみんなが言ってる通り配列のインデックスは0から始まるし
Cellは行にしても列にしても1から始まるのでそこんとこ気をつけなければいけません。
後はセル指定する際にはブック、シートも指定しておく癖をつけておくことをお勧めします。
504デフォルトの名無しさん (ササクッテロル Sp47-YkOl)
2019/10/29(火) 19:57:54.69ID:+Y5A9Qhrp >>501
仕事場によっては、特に銀行系は
使うもの以外勝手にインストールしてはいけないところが多々有ります。
例えばJavascriptだけ使ってればいいのに
勝手にVisualStudoやTOMCATとかをインストールすると怒られるどころか
コンプライアンスの面から仕事場を退場させられる場合もあります。
EXCELは大概どこの仕事場にも入っているから
インストールしなくても使えるだけで、
当然入れてはいけないと言われたら勝手に入れるべきではありません。
むしろ「勝手にどんどん何でもインストールしていいですよ〜」なんて仕事場があったら
そこのセキュリティはどうなってるのか疑うべきと思われます。
仕事場によっては、特に銀行系は
使うもの以外勝手にインストールしてはいけないところが多々有ります。
例えばJavascriptだけ使ってればいいのに
勝手にVisualStudoやTOMCATとかをインストールすると怒られるどころか
コンプライアンスの面から仕事場を退場させられる場合もあります。
EXCELは大概どこの仕事場にも入っているから
インストールしなくても使えるだけで、
当然入れてはいけないと言われたら勝手に入れるべきではありません。
むしろ「勝手にどんどん何でもインストールしていいですよ〜」なんて仕事場があったら
そこのセキュリティはどうなってるのか疑うべきと思われます。
505デフォルトの名無しさん (ワッチョイ e394-mumX)
2019/10/29(火) 20:03:23.90ID:tCyp/No90 マクロを許可してる方がセキュリティ意識ゼロ
506デフォルトの名無しさん (ワッチョイ d363-mjLV)
2019/10/29(火) 20:06:27.60ID:b5zWL0uJ0 開発メンバーは基本何でもできるからしょうがないだろ
Excelマクロがだめなら開発環境の言語使うわ
Excelマクロがだめなら開発環境の言語使うわ
507デフォルトの名無しさん (ワッチョイ ff68-mjLV)
2019/10/29(火) 20:10:23.13ID:zvctnIdZ0 cmdとか使える時点でセキュリティも何も合ったもんじゃないと思うけどね
508デフォルトの名無しさん (ワッチョイ 6f01-Z4kd)
2019/10/29(火) 20:22:40.07ID:OodB9NB80509デフォルトの名無しさん (ワッチョイ 6f01-Z4kd)
2019/10/29(火) 20:28:16.99ID:OodB9NB80510デフォルトの名無しさん (ワッチョイ ff59-cL2I)
2019/10/29(火) 23:06:14.03ID:G3O8ZbaI0 鱗付いてるとか爬虫類かよ
511デフォルトの名無しさん (ワッチョイ cf8e-FPtM)
2019/10/29(火) 23:35:46.46ID:CZCLEAoQ0 >>502
死ね、クズ
死ね、クズ
512デフォルトの名無しさん (ワッチョイ d3da-MdJ4)
2019/10/30(水) 10:46:19.82ID:YBm8xQnu0 >>510
爬虫類のわけないだろ
爬虫類のわけないだろ
513デフォルトの名無しさん (スプッッ Sd1f-5/kr)
2019/10/30(水) 10:55:31.55ID:YKBvUaHsd514デフォルトの名無しさん (スプッッ Sd1f-5/kr)
2019/10/30(水) 11:02:18.69ID:YKBvUaHsd >>501
結構多いし、そもそもExcelだけでどうとでもなるから。
能力の低い奴はExcelのせいにするけど、こっちは君が対応出来ないことも出来るんだよ。
確かにどうにもならないことならその時にはじめて他のソフトを検討するけどね。
結構多いし、そもそもExcelだけでどうとでもなるから。
能力の低い奴はExcelのせいにするけど、こっちは君が対応出来ないことも出来るんだよ。
確かにどうにもならないことならその時にはじめて他のソフトを検討するけどね。
515デフォルトの名無しさん (スプッッ Sd1f-5/kr)
2019/10/30(水) 11:04:17.20ID:YKBvUaHsd516デフォルトの名無しさん (スプッッ Sd1f-5/kr)
2019/10/30(水) 11:07:13.09ID:YKBvUaHsd >>504
勝手に入れる奴はそもそも居ないでしょ。
Excelは大概どこの仕事場にも入っているのは事実だけど、それが理由ではない。
入っていなければ最初から選択肢に無いし、このスレに書き込んでもいない。
勝手に入れる奴はそもそも居ないでしょ。
Excelは大概どこの仕事場にも入っているのは事実だけど、それが理由ではない。
入っていなければ最初から選択肢に無いし、このスレに書き込んでもいない。
517デフォルトの名無しさん (ブーイモ MMe7-DyET)
2019/10/30(水) 17:43:14.91ID:qmgosQ7XM >>487
>>488
Dim i As Integer
Dim n As Integer
Dim 検索値(0 To 3) As String
n = 1
For i = 1 To 4
If Me.Controls("CheckBox" & i).Value = True Then
検索値(n) = Me.Controls("CheckBox" & i).Caption
n = n + 1
End If
Next i
ActiveSheet.Range("$A$1:$J$41").AutoFilter Field:=2, Criteria1:=Array(検索値), Operator:=xlFilterValues
素人ながらにこんな感じで書いてみたのですが、こうするとチェックした項目だけでなく空白セルもautofilterもかけてしまいます。
どうしたら空白セルを除外することができますか?
>>488
Dim i As Integer
Dim n As Integer
Dim 検索値(0 To 3) As String
n = 1
For i = 1 To 4
If Me.Controls("CheckBox" & i).Value = True Then
検索値(n) = Me.Controls("CheckBox" & i).Caption
n = n + 1
End If
Next i
ActiveSheet.Range("$A$1:$J$41").AutoFilter Field:=2, Criteria1:=Array(検索値), Operator:=xlFilterValues
素人ながらにこんな感じで書いてみたのですが、こうするとチェックした項目だけでなく空白セルもautofilterもかけてしまいます。
どうしたら空白セルを除外することができますか?
518デフォルトの名無しさん (オッペケ Sr47-7WON)
2019/10/30(水) 20:32:13.04ID:xO9FzZTbr end ifの前にredim preserve 検索値(i)は?
519デフォルトの名無しさん (ワッチョイ e394-mumX)
2019/10/30(水) 20:57:54.67ID:LQeJyD4+0 VBAのユーザーフォームはWindows98の時代で止まったまま
あれじゃあ恥ずかしいよね
あれじゃあ恥ずかしいよね
520デフォルトの名無しさん (ワッチョイ ffda-MdJ4)
2019/10/30(水) 21:12:32.09ID:q2N5Gpbg0 2019でファイルを開いた時に、勝手にコンボボックスのクリックイベントが発動するんだけど、何で?
もちろん、ワークブックのクラスには何も書いてない状態。
2013ではそんな事なかったと思うんだけど。
このせいで、一切編集せずに閉じようとしても、いちいち保存するか聞いてくる。
もちろん、ワークブックのクラスには何も書いてない状態。
2013ではそんな事なかったと思うんだけど。
このせいで、一切編集せずに閉じようとしても、いちいち保存するか聞いてくる。
521デフォルトの名無しさん (ワッチョイ 53ea-roNU)
2019/10/30(水) 21:15:30.81ID:CYvJIfr60 >>517
だいたいそんな感じですね。
以下で行けました。(Dim文、略)
Control名いじるのが面倒なので、FrameにChkBox
つっこんで回しています。
iCnt = UserForm1.Frame1.Controls.Count - 1
ReDim ARR(iCnt)
i = -1
For Each vBuf In UserForm1.Frame1.Controls
With vBuf
If .Value = True Then
i = i + 1
ARR(i) = .Caption
End If
End With
Next
ActiveSheet.Range("範囲").AutoFilter _
Field:=1, _
Criteria1:=ARR, _
Operator:=xlFilterValues
だいたいそんな感じですね。
以下で行けました。(Dim文、略)
Control名いじるのが面倒なので、FrameにChkBox
つっこんで回しています。
iCnt = UserForm1.Frame1.Controls.Count - 1
ReDim ARR(iCnt)
i = -1
For Each vBuf In UserForm1.Frame1.Controls
With vBuf
If .Value = True Then
i = i + 1
ARR(i) = .Caption
End If
End With
Next
ActiveSheet.Range("範囲").AutoFilter _
Field:=1, _
Criteria1:=ARR, _
Operator:=xlFilterValues
522デフォルトの名無しさん (アークセー Sx47-7WON)
2019/10/30(水) 21:19:32.90ID:JfXI2Ieyx >>520
アドインでアプリケーションレベルのイベントハンドラ動かしてるとかじゃないの
アドインでアプリケーションレベルのイベントハンドラ動かしてるとかじゃないの
523デフォルトの名無しさん (ワッチョイ 6f10-NvbF)
2019/10/30(水) 21:22:06.27ID:naugAKCN0 ワークブッククラスの話までできるなら切り分ければいいのに。
524デフォルトの名無しさん (ワッチョイ ffda-MdJ4)
2019/10/30(水) 21:37:14.35ID:q2N5Gpbg0525デフォルトの名無しさん (ワッチョイ ffda-MdJ4)
2019/10/30(水) 21:39:34.26ID:q2N5Gpbg0 ↑ワークブックオープンイベントの最初にEndって、アドインの方ね。
526デフォルトの名無しさん (ワッチョイ ffda-MdJ4)
2019/10/30(水) 21:45:25.88ID:q2N5Gpbg0 ↑クリックイベントだけじゃなくて、チェンジイベントもだった。
何もチェンジしてないっての。
何もチェンジしてないっての。
527デフォルトの名無しさん (アークセー Sx47-7WON)
2019/10/30(水) 21:54:49.68ID:JfXI2Ieyx528デフォルトの名無しさん (アウアウクー MM47-BHPo)
2019/10/30(水) 21:55:52.89ID:gwpyZLjKM ある数値が範囲(***-***)や、範囲と単体の組み合わせを、カンマで区切っているのを降順に配列に格納したいけど、なんか上手くいかないです。
全部VBAでやろうとしているから…なのかな?と思い始めてます。
それ用のシートを作って、そこに1つずつ入れてソートさせた方が簡単…なのでしょうか?
全部VBAでやろうとしているから…なのかな?と思い始めてます。
それ用のシートを作って、そこに1つずつ入れてソートさせた方が簡単…なのでしょうか?
529デフォルトの名無しさん (アークセー Sx47-7WON)
2019/10/30(水) 22:06:31.14ID:JfXI2Ieyx530デフォルトの名無しさん (ワッチョイ ffda-MdJ4)
2019/10/30(水) 22:18:54.50ID:q2N5Gpbg0 >>527
それも見たけど、ないなぁ。
ていうか、コンボボックスが置いてあるシートがアクティブじゃなくても発動するし。
2013では、VBAでオブジェクトにフォーカスを移すと、
初回のみカーソルが見えなくなる現象が起きたと思うけど、
その対策として何かやってたりして。
それも見たけど、ないなぁ。
ていうか、コンボボックスが置いてあるシートがアクティブじゃなくても発動するし。
2013では、VBAでオブジェクトにフォーカスを移すと、
初回のみカーソルが見えなくなる現象が起きたと思うけど、
その対策として何かやってたりして。
531デフォルトの名無しさん (ワッチョイ b37c-JGMk)
2019/10/30(水) 22:21:08.45ID:TIjegGw30 >>528
VBAでもシートに書き出してからでもどっちも大した手間は無いよ
まず範囲を1-3なら1,2,3と展開して全体をカンマ区切りだけにしてから、
前者なら配列に格納→配列の中身を降順でソート
後者ならシートに貼り付け→ソート機能使えばいい
VBAでもシートに書き出してからでもどっちも大した手間は無いよ
まず範囲を1-3なら1,2,3と展開して全体をカンマ区切りだけにしてから、
前者なら配列に格納→配列の中身を降順でソート
後者ならシートに貼り付け→ソート機能使えばいい
532デフォルトの名無しさん (アークセー Sx47-7WON)
2019/10/30(水) 22:34:12.92ID:JfXI2Ieyx533デフォルトの名無しさん (ワッチョイ 23c4-BHPo)
2019/10/30(水) 23:11:10.26ID:iRK6fdCa0 >>529
すまん、コード会社にあるから書けないけど、やりたい事はそんな感じ。
最初にカンマでsplitして配列に入れてからfor〜nextで0からuboundで最後まで繰り返して「-」になってる範囲を数字にバラしてその間の数字を作って配列に入れ直して…
とかやってたらコードぐちゃぐちゃ、頭の中もぐちゃぐちゃに…orz
すまん、コード会社にあるから書けないけど、やりたい事はそんな感じ。
最初にカンマでsplitして配列に入れてからfor〜nextで0からuboundで最後まで繰り返して「-」になってる範囲を数字にバラしてその間の数字を作って配列に入れ直して…
とかやってたらコードぐちゃぐちゃ、頭の中もぐちゃぐちゃに…orz
534デフォルトの名無しさん (ワッチョイ cf8e-FPtM)
2019/10/30(水) 23:22:56.07ID:rL303qhu0 >>533
馬鹿には無理ってことだよ
馬鹿には無理ってことだよ
535デフォルトの名無しさん (JP 0Hff-Aa88)
2019/10/30(水) 23:42:55.97ID:+vGa/LGgH ソートを自前で書くのは速度的にもメリット無いし作業シート用意した方がいいと思う
そういうとこで苦労するのはちょっと時間の無駄かなとも思うし
そういうとこで苦労するのはちょっと時間の無駄かなとも思うし
536デフォルトの名無しさん (アークセー Sx47-7WON)
2019/10/30(水) 23:56:52.02ID:6F3AzkQ1x >>533
配列を作るところまでは多分いけるんだろうけど、問題はソートなんじゃないの?
配列のソートをサポートしてる.NETのArrayListオブジェクトはVBAでも使えるので、CreateObject("System.Collections.ArrayList")でインスタンス生成してAddメソッドで配列を渡して使うといいよ
Revereメソッドを噛ませてからToArrayメソッドで再度配列化して配列変数に再格納すれば一発で降順ソートされた配列を取得できる
配列を作るところまでは多分いけるんだろうけど、問題はソートなんじゃないの?
配列のソートをサポートしてる.NETのArrayListオブジェクトはVBAでも使えるので、CreateObject("System.Collections.ArrayList")でインスタンス生成してAddメソッドで配列を渡して使うといいよ
Revereメソッドを噛ませてからToArrayメソッドで再度配列化して配列変数に再格納すれば一発で降順ソートされた配列を取得できる
537デフォルトの名無しさん (ワッチョイ 4a02-d0HK)
2019/10/31(木) 01:50:11.06ID:Xu0ModTh0 Excel2016/32bitで作成したマクロをExcel2019/64bitのパソコンに移動すると途中でExcel自体が落ちてしまいます
この場合、2019にしたこと、64bitにしたこと、どちらが原因と考えられるでしょうか?
この場合、2019にしたこと、64bitにしたこと、どちらが原因と考えられるでしょうか?
538デフォルトの名無しさん (アウアウウー Sa2f-RHCh)
2019/10/31(木) 06:48:15.19ID:P+363w9Wa そのくらいしらべられないの?
539デフォルトの名無しさん (アークセー Sx03-9ZEm)
2019/10/31(木) 08:04:58.17ID:6oU9RGLEx >>537
動かないマクロファイルのファイル形式は?
動かないマクロファイルのファイル形式は?
540デフォルトの名無しさん (ワッチョイ 4a02-d0HK)
2019/10/31(木) 10:03:55.60ID:Xu0ModTh0541デフォルトの名無しさん (ワッチョイ 4a02-d0HK)
2019/10/31(木) 10:04:33.47ID:Xu0ModTh0 ちなみに動く時もありますがたまに落ちるという不安定な状態です
542デフォルトの名無しさん (ワッチョイ de8e-D9gH)
2019/10/31(木) 11:41:33.83ID:EmOHV2200 また馬鹿が来た
543デフォルトの名無しさん (スフッ Sdea-t/t6)
2019/10/31(木) 12:23:33.00ID:aNgqFqurd >>540
何をどう調べてどういう結果になったの?
何をどう調べてどういう結果になったの?
544デフォルトの名無しさん (アウアウクー MM43-ppJP)
2019/10/31(木) 12:30:33.86ID:oEJHLRECM 533です。
結局分割をしたデータをセルに置いてソートをさせて配列に入れるコードで問題なく動きました。
ありがとうございました。
変にVBAてわ全てやろうとせずにすればここまで時間かけずに済んだのですね…orz
結局分割をしたデータをセルに置いてソートをさせて配列に入れるコードで問題なく動きました。
ありがとうございました。
変にVBAてわ全てやろうとせずにすればここまで時間かけずに済んだのですね…orz
545デフォルトの名無しさん (ドコグロ MM0b-+xQI)
2019/10/31(木) 12:42:50.28ID:H1H2bMOCM どうせマクロ作った奴が手抜きしててエラーになったらApplication.Quit()してるとかじゃね
みんなエスパーじゃないんだからコード上げられないなら自分でチマチマデバッグしなよ
みんなエスパーじゃないんだからコード上げられないなら自分でチマチマデバッグしなよ
546デフォルトの名無しさん (ブーイモ MMea-i/e8)
2019/10/31(木) 16:13:16.49ID:yyoRZlBtM547デフォルトの名無しさん (ワッチョイ c605-qQ6b)
2019/11/01(金) 00:20:58.64ID:bbcNS1Ni0 VBSスレが過疎り過ぎているのとWSHのスレが無いことから、ここでVBSの質問させて下さい。
WshShellのRunメソッドを使ってTortoiseSVNのダイアログを呼び出すプログラムを書いているのですが、引数1を入れてもウィンドウが最前面に来てくれません。
Runした後にAppActivateメソッドを使ってもだめです。誰か、解決策をご存じの方、よろしくお願い申し上げます。
WshShellのRunメソッドを使ってTortoiseSVNのダイアログを呼び出すプログラムを書いているのですが、引数1を入れてもウィンドウが最前面に来てくれません。
Runした後にAppActivateメソッドを使ってもだめです。誰か、解決策をご存じの方、よろしくお願い申し上げます。
548デフォルトの名無しさん (ワッチョイ c610-HjOu)
2019/11/01(金) 00:46:23.89ID:txYCNlM40 tortoiseSVNとやらを触った事ないけど、
tortoiseSVNだけ起こる事象なの?他のNotepadとかでは試しました?
tortoiseSVNだけ起こる事象なの?他のNotepadとかでは試しました?
549デフォルトの名無しさん (ワッチョイ c610-HjOu)
2019/11/01(金) 01:08:36.00ID:txYCNlM40 spy++とかで窓id探ってapi使ってhandleできないかな
550デフォルトの名無しさん (ワッチョイ c610-HjOu)
2019/11/01(金) 01:38:24.11ID:txYCNlM40 >>536
レコードセット以外にも色んな方法があるものだね。勉強になったありがとう。
レコードセット以外にも色んな方法があるものだね。勉強になったありがとう。
551デフォルトの名無しさん (ワッチョイ 0b7c-qp9g)
2019/11/01(金) 16:54:14.94ID:BenAXzvv0 こちらのページ(https://www.sejuku.net/blog/99122)に記載されている
PDFをテキスト抽出してエクセルに貼るマクロを利用したいのですが、
ファイルとフォルダのパスを固定した記述になっているため、
ベースとなるPDFファイルを選択できるようにしたいのですがどなたか教えていただけないでしょうか。
↓のアスタリスク部分をどうにかすればと2時間戦いましたがどうにもできませんでした...
'PDFのデータをExcelに読み込むメイン処理
Sub Main()
'PDFファイルをテキストに変換するための定数を用意
* Const fileName = "*****"
* Const folderPath = "C:\Users\*****\"
Const pdfFilePath = folderPath & fileName & ".pdf"
Const txtFilePath = folderPath & fileName & ".txt"
'PDFファイルをテキストに変換
Call convPDFtoText(fileName, folderPath, pdfFilePath, txtFilePath)
'テキストデータをExcelに読み込む
Call importTxtData(txtFilePath)
End Sub
PDFをテキスト抽出してエクセルに貼るマクロを利用したいのですが、
ファイルとフォルダのパスを固定した記述になっているため、
ベースとなるPDFファイルを選択できるようにしたいのですがどなたか教えていただけないでしょうか。
↓のアスタリスク部分をどうにかすればと2時間戦いましたがどうにもできませんでした...
'PDFのデータをExcelに読み込むメイン処理
Sub Main()
'PDFファイルをテキストに変換するための定数を用意
* Const fileName = "*****"
* Const folderPath = "C:\Users\*****\"
Const pdfFilePath = folderPath & fileName & ".pdf"
Const txtFilePath = folderPath & fileName & ".txt"
'PDFファイルをテキストに変換
Call convPDFtoText(fileName, folderPath, pdfFilePath, txtFilePath)
'テキストデータをExcelに読み込む
Call importTxtData(txtFilePath)
End Sub
552デフォルトの名無しさん (オッペケ Sr03-9ZEm)
2019/11/01(金) 18:51:05.73ID:tcQFOgygr >>551
GetOpenFilenameでパスとファイル名を取得
GetOpenFilenameでパスとファイル名を取得
553デフォルトの名無しさん (ササクッテロル Sp03-HTwX)
2019/11/01(金) 19:03:05.01ID:qpEsTrFRp >>536
.Netのオブジェクトが使えるというのは
正直目からウロコだった。
いいね。.Net使いの俺からすると
機能に制限があるとは言っても有り難い。
ただ、参照設定して使っても
インテリセンスが効かないのが
ちょっと玉に瑕だけど。
.Netのオブジェクトが使えるというのは
正直目からウロコだった。
いいね。.Net使いの俺からすると
機能に制限があるとは言っても有り難い。
ただ、参照設定して使っても
インテリセンスが効かないのが
ちょっと玉に瑕だけど。
554デフォルトの名無しさん (ワッチョイ 4ada-QPqB)
2019/11/01(金) 19:13:41.95ID:VrCKg/E/0 >>532
試してないけど、クリック→ドロップボタンクリックにしたら発動しなくなったから、もうそれでいいやw
1クリックで2回動くのが嫌だけど。
いちいち、2回に1回Exitする処理入れないといけないし。
試してないけど、クリック→ドロップボタンクリックにしたら発動しなくなったから、もうそれでいいやw
1クリックで2回動くのが嫌だけど。
いちいち、2回に1回Exitする処理入れないといけないし。
555デフォルトの名無しさん (ワッチョイ 4ada-QPqB)
2019/11/01(金) 19:19:03.89ID:VrCKg/E/0 ↑ダメだったwww
発動しないけど、何もしてないのに保存しますか?って聞いてくる現象が直ってないww
イベント関係ないのか。
発動しないけど、何もしてないのに保存しますか?って聞いてくる現象が直ってないww
イベント関係ないのか。
556デフォルトの名無しさん (ワッチョイ cb01-ysfy)
2019/11/01(金) 19:19:33.63ID:uwtpA0hM0 >>553
IListインターフェースを通せばメンバが見れる
IListインターフェースを通せばメンバが見れる
557デフォルトの名無しさん (ワッチョイ 07ce-qV4/)
2019/11/01(金) 21:38:56.17ID:GexbRJ7D0 >>553
スニペット出す方法あるよ
スニペット出す方法あるよ
558デフォルトの名無しさん (ブーイモ MM27-VCHd)
2019/11/02(土) 10:38:29.89ID:Rmc9OzBRM >>557
教えて
教えて
559デフォルトの名無しさん (ワッチョイ 0b7c-BUT5)
2019/11/02(土) 11:50:26.19ID:Wmiw+MGb0560デフォルトの名無しさん (ラクペッ MMfb-KqWR)
2019/11/02(土) 17:21:27.20ID:ZDwGDXirM >>557
CreateObjectせず使う方法があるのか
CreateObjectせず使う方法があるのか
561デフォルトの名無しさん (スフッ Sdea-xAfC)
2019/11/02(土) 17:29:13.96ID:wtbfu1Hrd ペニスット
562デフォルトの名無しさん (ワッチョイ ca79-fRYr)
2019/11/02(土) 17:58:11.63ID:71SUtLbe0 わかる
563デフォルトの名無しさん (アウアウウー Sa2f-wGfw)
2019/11/02(土) 18:30:05.20ID:PiAf5Ioqa VBAスレはみんな頭悪そうだなぁ
564デフォルトの名無しさん (ワッチョイ 0668-qV4/)
2019/11/02(土) 19:38:01.12ID:iaRIGfJY0 >>561
誰もが思うよな
誰もが思うよな
565デフォルトの名無しさん (ワッチョイ 4ada-QPqB)
2019/11/02(土) 19:39:08.44ID:FVhvHALx0 面白いこと考えるよな。
シートに貼ってソートか、SQLのORDER BYしか思いつかんかったわ。
シートに貼ってソートか、SQLのORDER BYしか思いつかんかったわ。
566デフォルトの名無しさん (ワッチョイ 4a42-ANgw)
2019/11/02(土) 23:15:53.80ID:yMKMWSCL0 >>563
見下したところでお前のほうが格上になったわけじゃないんだぜ
見下したところでお前のほうが格上になったわけじゃないんだぜ
567デフォルトの名無しさん (ワッチョイ 4ada-QPqB)
2019/11/02(土) 23:34:47.29ID:FVhvHALx0568デフォルトの名無しさん (ドコグロ MM02-+xQI)
2019/11/02(土) 23:38:18.19ID:neC/7x9UM >>566
いちいち構うなよ…
いちいち構うなよ…
569デフォルトの名無しさん (ワッチョイ ca59-xAfC)
2019/11/03(日) 00:02:25.36ID:uWoEfwnV0 おならが止まらん
570デフォルトの名無しさん (ワッチョイ 1bc4-5gQh)
2019/11/03(日) 04:16:21.62ID:C9sdk88g0 ユーザーフォームが表示されてる状態でキーボードのキーの組み合わせ(ctrl+何かとか)をした際にだけ、フォーム上に表示される様にするにはどう言ったコードにすればいいでしょう?
571デフォルトの名無しさん (アークセー Sx03-9ZEm)
2019/11/03(日) 05:12:05.86ID:dj0payfvx >>570
UserFormのKeyDownイベントで拾う
たとえばUserFormの上でCtrlキーとAキーが同時に押されたときにCommandButton1を表示するという処理なら下のようになる
押された文字キーを示すキーコードは引数KeyCodeに定数で格納されるけど、Aキー以外の文字キーにしたいなら定数は自分で調べてくれ
あと次からは何を表示したいのか目的語をきちんと書くように
Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 65 And Shift = vbCtrlMask Then Me.CommandButton1.Visible = True
End Sub
UserFormのKeyDownイベントで拾う
たとえばUserFormの上でCtrlキーとAキーが同時に押されたときにCommandButton1を表示するという処理なら下のようになる
押された文字キーを示すキーコードは引数KeyCodeに定数で格納されるけど、Aキー以外の文字キーにしたいなら定数は自分で調べてくれ
あと次からは何を表示したいのか目的語をきちんと書くように
Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 65 And Shift = vbCtrlMask Then Me.CommandButton1.Visible = True
End Sub
572デフォルトの名無しさん (ブーイモ MM4f-VCHd)
2019/11/03(日) 05:37:41.26ID:ZKxIvhRAM Withってコーティングの手間を省く、見映え以外に良いこと有りますか?
573デフォルトの名無しさん (ドコグロ MM02-+xQI)
2019/11/03(日) 06:42:19.84ID:RKQY4+qlM >>572
Dim S As Xxx
Set S = Yyy
S.Abc = …
S.Def = …
より
With Yyy
.Abc = …
.Def = …
End With
の方が微妙に速いとかもあったかも
まあ気にするほどの差はない
Dim S As Xxx
Set S = Yyy
S.Abc = …
S.Def = …
より
With Yyy
.Abc = …
.Def = …
End With
の方が微妙に速いとかもあったかも
まあ気にするほどの差はない
574デフォルトの名無しさん (ワッチョイ 1bc4-5gQh)
2019/11/03(日) 08:20:53.85ID:C9sdk88g0575デフォルトの名無しさん (ワッチョイ c610-HjOu)
2019/11/03(日) 09:38:51.22ID:459Gcksu0 まず変数名を考えなくて良いという点、
それから、end with で破棄(解放)される点
それから、end with で破棄(解放)される点
576デフォルトの名無しさん (アークセー Sx03-9ZEm)
2019/11/03(日) 13:54:04.03ID:dj0payfvx 逆にWithステートメントで取得した参照がEnd Withまで静的に保持される点は注意すべきポイントでもある
例えばWith ActiveSheet で始まるWithブロック内で他シートをアクティブにしても、ドットでアクセス提供されるメンバの親はWith宣言時点のActiveSheetになるからな
例えばWith ActiveSheet で始まるWithブロック内で他シートをアクティブにしても、ドットでアクセス提供されるメンバの親はWith宣言時点のActiveSheetになるからな
577デフォルトの名無しさん (ドコグロ MM02-l9Pq)
2019/11/04(月) 01:41:27.33ID:uMNIwQlPM Withの読み方はウイズだと思うけど書くときの頭の中はいつもウイテンなのは俺だけなのかな
578デフォルトの名無しさん (ワッチョイ 4ada-QPqB)
2019/11/04(月) 02:38:13.83ID:C7VrCGoL0 読み方があってるかどうか不安なのはあるな。
ナンバーフォーマットローカルとか。
ナンバーフォーマットローカルとか。
579デフォルトの名無しさん (ブーイモ MMea-HjOu)
2019/11/04(月) 02:46:05.97ID:Y6Gluo6PM バリアントであってる?w
580デフォルトの名無しさん (ワッチョイ 4ada-QPqB)
2019/11/04(月) 03:13:21.06ID:C7VrCGoL0 最初は、ヤッホージャパンって何だよwwwって思ったな。
581デフォルトの名無しさん (アークセー Sx03-9ZEm)
2019/11/04(月) 03:53:28.93ID:CYpqTCzkx むかしFalseのことファルスって読んでた
ファルスがギリシャ語で陰部を意味する単語だと知ったのは最近
ファルスがギリシャ語で陰部を意味する単語だと知ったのは最近
582デフォルトの名無しさん (ワッチョイ 07ce-qV4/)
2019/11/04(月) 09:39:04.15ID:gB0LOFjS0 滅びの呪文
583デフォルトの名無しさん (ワッチョイ 67da-NOwR)
2019/11/04(月) 14:50:42.78ID:O9lg7NQ30 w
584デフォルトの名無しさん (ワイーワ2 FF82-Se/k)
2019/11/05(火) 18:34:38.01ID:CrKvYzfVF585デフォルトの名無しさん (ラクペッ MMfb-KqWR)
2019/11/05(火) 18:44:36.75ID:v4Zm9Tj+M >>581
20年以上ファルスと読んでた。最近Youtubeでフォルスだと知った。Bluetoothを何度教えてもブルースと読む同僚を笑えない。
20年以上ファルスと読んでた。最近Youtubeでフォルスだと知った。Bluetoothを何度教えてもブルースと読む同僚を笑えない。
586デフォルトの名無しさん (スププ Sdea-uEAZ)
2019/11/05(火) 18:50:10.04ID:W9mxYkl/d >>585
ワイの周りにもファルス詠みはたくさんいる。中高の英語の勉強で発音記号見たことあるはずなのに
ワイの周りにもファルス詠みはたくさんいる。中高の英語の勉強で発音記号見たことあるはずなのに
587デフォルトの名無しさん (ワッチョイ 9f7c-a6AK)
2019/11/05(火) 19:54:14.94ID:zWfG7OZu0 教えてくれた先生がファルスだったので周りもみんなファルス読み
588デフォルトの名無しさん (アウアウウー Sa2f-NOwR)
2019/11/05(火) 20:22:41.01ID:JryaN2pta 上司からフォルスで教わった
589デフォルトの名無しさん (ワッチョイ 6f5f-ANgw)
2019/11/05(火) 21:16:39.16ID:rpaa5EWu0 フォルス?フォールスだろ?
英語知らんのかな
英語知らんのかな
590デフォルトの名無しさん (ワッチョイ 4a42-ANgw)
2019/11/05(火) 21:29:26.89ID:hUdA7EQo0 ファーストフードがいつの間にかファストフードになってるようなもんだろ
591デフォルトの名無しさん (ワッチョイ 6f5f-ANgw)
2019/11/05(火) 21:32:19.18ID:rpaa5EWu0 いや単にバカなだけだろw
592デフォルトの名無しさん (ワッチョイ caea-lfDl)
2019/11/05(火) 22:00:02.40ID:Y2zra18+0 >>589
発音記号みると、どっちもあるみたいだね。
発音記号みると、どっちもあるみたいだね。
593デフォルトの名無しさん (ワッチョイ c610-HjOu)
2019/11/05(火) 22:35:00.66ID:ah8KxcV+0 カタカナに当てはめるんじゃないfalseはfalseだぜ
594デフォルトの名無しさん (アウアウエー Sac2-x9nz)
2019/11/05(火) 22:50:55.14ID:yUheLICMa ファォッルスッ!
595デフォルトの名無しさん (ワッチョイ c610-HjOu)
2019/11/05(火) 22:52:22.61ID:ah8KxcV+0 ふぁっぁく!
596デフォルトの名無しさん (ワッチョイ 4aa2-aDcy)
2019/11/05(火) 23:47:59.23ID:7oZHxMow0 野球のファールみたいなもんだろ
よってファールスで
よってファールスで
597デフォルトの名無しさん (ワッチョイ de61-DOEl)
2019/11/06(水) 06:04:23.35ID:jiZZUv+M0598デフォルトの名無しさん (ワッチョイ de61-DOEl)
2019/11/06(水) 06:44:01.06ID:jiZZUv+M0599デフォルトの名無しさん (ワッチョイ 4ada-QPqB)
2019/11/06(水) 19:00:52.62ID:XsHQlDv60 ん?
ムサンバニかモーサンバーニーかっていう話?
ムサンバニかモーサンバーニーかっていう話?
600デフォルトの名無しさん (アウアウウー Sa2f-NOwR)
2019/11/06(水) 19:53:02.84ID:3KrvKGm6a ピッツァのことか
601デフォルトの名無しさん (オッペケ Sr0f-I9Tk)
2019/11/07(木) 00:18:34.56ID:Vgod5FHRr すみません。
最新のWindows10でVBAを実行したところ、VBScript.RegExpのCreateObjectに失敗しました。
IEのVBS機能が無効化された影響によるものでしょうか?
回避策等ありますでしょうか?
最新のWindows10でVBAを実行したところ、VBScript.RegExpのCreateObjectに失敗しました。
IEのVBS機能が無効化された影響によるものでしょうか?
回避策等ありますでしょうか?
602デフォルトの名無しさん (アークセー Sx0f-Arvb)
2019/11/07(木) 03:57:12.24ID:sFRacxbxx >>601
試してないけどJScriptを使ったらどうかな
32bit環境ならScriptControl オブジェクトをCreateObjectで生成してJScriptの正規表現を使う
62bit環境ならMSHTMLオブジェクトでIEのエンジンのJScript実行環境を生成して、そこからJScriptの正規表現を使う
試してないけどJScriptを使ったらどうかな
32bit環境ならScriptControl オブジェクトをCreateObjectで生成してJScriptの正規表現を使う
62bit環境ならMSHTMLオブジェクトでIEのエンジンのJScript実行環境を生成して、そこからJScriptの正規表現を使う
603デフォルトの名無しさん (ワッチョイ 0fcc-OQ0I)
2019/11/07(木) 19:03:46.63ID:JqbJgiKT0 同じフォルダ内の他のファイルを削除しようとすると
ファイルは削除されますが、
「実行時エラー'70': 書き込みできません。」
がでて処理が止まります。
Dim aa As String
aa = ThisWorkbook.Path & "\"
Kill aa & "*.*"
どうすれば止まらずに処理できますか
ファイルは削除されますが、
「実行時エラー'70': 書き込みできません。」
がでて処理が止まります。
Dim aa As String
aa = ThisWorkbook.Path & "\"
Kill aa & "*.*"
どうすれば止まらずに処理できますか
604デフォルトの名無しさん (ワッチョイ 0f8e-8UzB)
2019/11/07(木) 19:14:00.49ID:JuEkRQF70 >>603
自分の手で自分の頸を吊ってみればわかるぞ
自分の手で自分の頸を吊ってみればわかるぞ
605デフォルトの名無しさん (アークセー Sx0f-Arvb)
2019/11/07(木) 19:14:43.23ID:A6k0oUZwx >>603
ThisworkbookそのものをKillしようとして失敗してる
ThisworkbookそのものをKillしようとして失敗してる
607デフォルトの名無しさん (ワッチョイ fb7c-Sray)
2019/11/07(木) 19:51:15.23ID:DHbfNndS0 >>606
ひとつずつ確認しながら消す
ひとつずつ確認しながら消す
608デフォルトの名無しさん (アウアウウー Sacf-GHlP)
2019/11/07(木) 19:54:49.91ID:Hld4e4lOa エラー処理いれる
609デフォルトの名無しさん (ワントンキン MMbf-cnl9)
2019/11/07(木) 19:56:45.33ID:5uk1oCuaM611デフォルトの名無しさん (ワッチョイ 0f8e-8UzB)
2019/11/07(木) 20:19:39.30ID:JuEkRQF70 >>610
馬鹿は死ねよ
馬鹿は死ねよ
612デフォルトの名無しさん (アウアウウー Sacf-GHlP)
2019/11/07(木) 20:29:48.40ID:Hld4e4lOa >>610
607のやり方がいいと思うぞ
607のやり方がいいと思うぞ
613デフォルトの名無しさん (ワッチョイ fb7c-Sray)
2019/11/07(木) 20:32:08.30ID:DHbfNndS0 >>609
thisworkbookを消そうとした時以外でも同じエラーが出ることがある
thisworkbookを消そうとした時以外でも同じエラーが出ることがある
614デフォルトの名無しさん (ワッチョイ 8b01-U1MJ)
2019/11/07(木) 20:46:34.17ID:gQ6uYn6M0 例外前提の分岐とか一番やっちゃいけないだろ
615デフォルトの名無しさん (ワッチョイ 5bda-AXNO)
2019/11/08(金) 03:21:06.91ID:ebkgjtQt0 kill *.* とか普通は怖くてできないぞ
616デフォルトの名無しさん (アークセー Sx0f-Arvb)
2019/11/08(金) 03:24:31.82ID:TcyEUh9gx FileSystemObjectとか使えばいいのに
617デフォルトの名無しさん (ワッチョイ ef10-wQYL)
2019/11/08(金) 07:35:20.51ID:/14Ittk50 https://gigazine.net/amp/20191107-drum-machine-in-excel
スーパーテクを俺に継承してくれw
スーパーテクを俺に継承してくれw
618デフォルトの名無しさん (アークセー Sx0f-Arvb)
2019/11/09(土) 08:05:58.77ID:FLPipJw+x >>603
Dim fso As Object
Dim fr As Object
Dim fl As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set fr = fso.GetFolder(ThisWorkbook.Path)
On Error Resume Next
For Each fl In fr.Files
If fl.Name <> ThisWorkbook.Name Then
fl.Delete
If Err.Number <> 0 Then
Debug.Print "Err.Number:" & Err.Number &" FileName:" & fl.Name
Err.Clear
End If
End If
Next fl
Dim fso As Object
Dim fr As Object
Dim fl As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set fr = fso.GetFolder(ThisWorkbook.Path)
On Error Resume Next
For Each fl In fr.Files
If fl.Name <> ThisWorkbook.Name Then
fl.Delete
If Err.Number <> 0 Then
Debug.Print "Err.Number:" & Err.Number &" FileName:" & fl.Name
Err.Clear
End If
End If
Next fl
619デフォルトの名無しさん (ブーイモ MMbf-NtqY)
2019/11/09(土) 09:04:21.85ID:DhErEMKcM Dim wb as Workbook
...
wbが開いているか閉じられているか確認する方法ありますか?
...
wbが開いているか閉じられているか確認する方法ありますか?
620デフォルトの名無しさん (ワッチョイ eff7-jCOF)
2019/11/09(土) 09:50:21.72ID:s5KKViGX0 For Each wb in workbooks で名前やパスをチェックするとか
621デフォルトの名無しさん (アークセー Sx0f-Arvb)
2019/11/09(土) 10:39:45.65ID:YT93jrBPx >>620
そのやり方だとNASとかにある共有ファイルを他人が開いてる場合には判定不可能
>>619
対象のファイルをエクセルファイルとして開かずにVB6のOpen ステートメントの追記モードで開くのがオーソドックスなやり方
他のユーザーエンティティが編集権をロックした状態だとファイルが開けずエラーが発生することを利用する
エラーコードを調べて0より大きい場合はファイルが開かれている、そうでなければファイルが開かれていないと判断する
ただし負荷対策が最適化されていないネットワーク環境でサーバーの応答が遅くなっている場合、数分前に誰かが閉じたファイルを開いていると判定してしまうので要注意
'サンプルコード
Sub Sample()
If IsFileOpened("任意のブックのフルパス") Then
MsgBox "開かれています"
Else
MsgBox "開かれていません"
End If
End Sub
Function IsFileOpened(fliepath as String) As Boolean
On Error Resume Next
Open filepath For Append As #1
Close #1
If Err.Number > 0 Then
IsFileOpened = True
Err.Clear
Else
IsFileOpened = False
End If
End Function
そのやり方だとNASとかにある共有ファイルを他人が開いてる場合には判定不可能
>>619
対象のファイルをエクセルファイルとして開かずにVB6のOpen ステートメントの追記モードで開くのがオーソドックスなやり方
他のユーザーエンティティが編集権をロックした状態だとファイルが開けずエラーが発生することを利用する
エラーコードを調べて0より大きい場合はファイルが開かれている、そうでなければファイルが開かれていないと判断する
ただし負荷対策が最適化されていないネットワーク環境でサーバーの応答が遅くなっている場合、数分前に誰かが閉じたファイルを開いていると判定してしまうので要注意
'サンプルコード
Sub Sample()
If IsFileOpened("任意のブックのフルパス") Then
MsgBox "開かれています"
Else
MsgBox "開かれていません"
End If
End Sub
Function IsFileOpened(fliepath as String) As Boolean
On Error Resume Next
Open filepath For Append As #1
Close #1
If Err.Number > 0 Then
IsFileOpened = True
Err.Clear
Else
IsFileOpened = False
End If
End Function
622デフォルトの名無しさん (オッペケ Sr0f-I9Tk)
2019/11/10(日) 03:17:05.03ID:7c8MD0U8r >>621
ブックを開いているときは~$ファイル名の隠しファイルが作られるからそれを見たら
ブックを開いているときは~$ファイル名の隠しファイルが作られるからそれを見たら
623デフォルトの名無しさん (スププ Sdbf-38dS)
2019/11/10(日) 16:07:54.61ID:mlZHtGvXd 行番号が1-9まで1ずつ加算されてる中で3ごとにブロックとして処理の始点を1,4,7行にしたいんだけど行番号から式で求められないかな?
for i=1to9
if i<4 and i>0 then 処理1
elseif i<7 and i>3then 処理2
else 処理3
next i
これを分岐なしでスマートに書きたい
123456789→111444777って変換式が欲しい
for i=1to9
if i<4 and i>0 then 処理1
elseif i<7 and i>3then 処理2
else 処理3
next i
これを分岐なしでスマートに書きたい
123456789→111444777って変換式が欲しい
624デフォルトの名無しさん (ワッチョイ 0f8e-8UzB)
2019/11/10(日) 16:20:12.48ID:ISabdlL+0 >>623
馬鹿は小学生からやり直せ
馬鹿は小学生からやり直せ
625デフォルトの名無しさん (ワッチョイ 5bda-GHlP)
2019/11/10(日) 16:45:02.84ID:3pDgk0W90 1引いて3で割った商を3倍して1を足すとか
626デフォルトの名無しさん (スップ Sdbf-IAD9)
2019/11/10(日) 16:54:56.61ID:CxUi7EKzd VBAの時点でスマートじゃないから
627デフォルトの名無しさん (ワッチョイ 9f2c-E8Ce)
2019/11/10(日) 17:03:38.70ID:ER+z1tbi0 Ruby で、
( 1..9 ).each { |i| p ( ( i - 1 ) / 3 ) * 3 + 1 }
( 1..9 ).each { |i| p ( ( i - 1 ) / 3 ) * 3 + 1 }
628デフォルトの名無しさん (ワッチョイ ef68-DaD1)
2019/11/10(日) 17:13:45.05ID:HO+Z4H690 何でもうすぐ無くなる言語のruby何かで答えるの?アホなの?
629デフォルトの名無しさん (ワッチョイ dbce-DaD1)
2019/11/10(日) 17:46:44.80ID:f9aUABsd0 >>623
変換するだけなら
i - (i - 1) Mod 3
で111444777になる
3つの処理に分けたいなら
Select Case i
Case 1, 2, 3
処理1
Case 4, 5, 6
処理2
Case Else
処理3
End Select
変換するだけなら
i - (i - 1) Mod 3
で111444777になる
3つの処理に分けたいなら
Select Case i
Case 1, 2, 3
処理1
Case 4, 5, 6
処理2
Case Else
処理3
End Select
630デフォルトの名無しさん (ワッチョイ 5bda-AXNO)
2019/11/10(日) 17:48:13.51ID:3pDgk0W90 式を入れてもできそうだな
631デフォルトの名無しさん (アークセー Sx0f-Arvb)
2019/11/10(日) 17:55:48.55ID:CHmVk7q0x >>623
111777999を割り出す変換式を使うのではなく、行番号を3で割った商が1の場合だけ処理を行うようにするのは駄目なの?
例えばこんな感じ
For i = 1 To 9
If i Mod 3 = 1 Then
'処理
End If
Next
111777999を割り出す変換式を使うのではなく、行番号を3で割った商が1の場合だけ処理を行うようにするのは駄目なの?
例えばこんな感じ
For i = 1 To 9
If i Mod 3 = 1 Then
'処理
End If
Next
632デフォルトの名無しさん (アークセー Sx0f-Arvb)
2019/11/10(日) 18:00:46.35ID:CHmVk7q0x >>631
間違えた、3で割った商じゃなくて余りね
間違えた、3で割った商じゃなくて余りね
633デフォルトの名無しさん (ワッチョイ ef68-ojrg)
2019/11/10(日) 19:14:57.01ID:tOVYZh2e0 数独かな
634デフォルトの名無しさん (ワッチョイ 5bda-AXNO)
2019/11/10(日) 19:46:34.21ID:3pDgk0W90 j = Mid("111444777", i, 1)
635デフォルトの名無しさん (スププ Sdbf-38dS)
2019/11/10(日) 22:03:46.21ID:mlZHtGvXd636デフォルトの名無しさん (ワッチョイ eff7-jCOF)
2019/11/10(日) 22:35:02.94ID:bOxdjs7b0 for i =1 to 7 step 3
637デフォルトの名無しさん (スププ Sdbf-38dS)
2019/11/11(月) 06:13:38.55ID:3IE5w81qd ( x - 1 ) mod stepNum + minNum
例えば0123456789を3ずつカウントアップすると000333666になる
例えば0123456789を3ずつカウントアップすると000333666になる
638デフォルトの名無しさん (アウアウウー Sacf-g+oF)
2019/11/11(月) 06:30:01.29ID:Q8KRogaUa >>637
何故馬鹿は聞かれてもいない事をこたえてしまえのかw
何故馬鹿は聞かれてもいない事をこたえてしまえのかw
639デフォルトの名無しさん (ワッチョイ ef68-ojrg)
2019/11/11(月) 08:49:23.01ID:P0z5I7y60640デフォルトの名無しさん (ワッチョイ fb7c-Sray)
2019/11/11(月) 19:59:18.13ID:oGPuZ3IA0641デフォルトの名無しさん (ワッチョイ 4bc4-PySg)
2019/11/11(月) 21:20:23.51ID:ar1IlrsX0 ブックAのUserFormのボタンから1つ下のフォルダに入っているブックBのUserFormを起動させたいのだけど、
ネットで探した「Application.run Thisworkbook.path & "\〜\ブックB!subプロシージャ名"」というのを記載して実行させたけど、
エラーになってしまいましたが、これはどこが悪いのでしょう…
ネットで探した「Application.run Thisworkbook.path & "\〜\ブックB!subプロシージャ名"」というのを記載して実行させたけど、
エラーになってしまいましたが、これはどこが悪いのでしょう…
642デフォルトの名無しさん (ワッチョイ fb7c-Sray)
2019/11/11(月) 21:24:34.26ID:oGPuZ3IA0 >>641
パス、プロシージャ名、引数のどれかが間違ってる
パス、プロシージャ名、引数のどれかが間違ってる
643デフォルトの名無しさん (ワッチョイ fb7c-Sray)
2019/11/11(月) 21:26:03.11ID:oGPuZ3IA0 拡張子も付いてないな
644デフォルトの名無しさん (ワッチョイ 4bc4-n17R)
2019/11/11(月) 21:56:10.05ID:ar1IlrsX0 >>643
.xlsm!〜でもやってみたのですがダメでした。
.xlsm!〜でもやってみたのですがダメでした。
645デフォルトの名無しさん (ワッチョイ 4bc4-n17R)
2019/11/11(月) 21:58:12.61ID:ar1IlrsX0 ちなみに、workbook_openのプロシージャは直接subプロシージャ名を指定してもブックが開く時には通るって考えでいいんですよね?
646デフォルトの名無しさん (ワッチョイ fb7c-Sray)
2019/11/11(月) 22:22:57.09ID:oGPuZ3IA0 >>644
パスを'で括る
パスを'で括る
647デフォルトの名無しさん (ワッチョイ 0b2c-38dS)
2019/11/11(月) 22:26:38.25ID:m+wKVDU/0 >>640
たぶんそうじゃない?
たぶんそうじゃない?
648デフォルトの名無しさん (ワッチョイ 4bc4-n17R)
2019/11/12(火) 02:24:55.99ID:oo4izA1E0649デフォルトの名無しさん (ワッチョイ 8b01-U1MJ)
2019/11/12(火) 04:29:40.38ID:0+gbLwkM0650デフォルトの名無しさん (アウアウクー MM0f-n17R)
2019/11/12(火) 08:36:17.42ID:l0mUz5CNM651デフォルトの名無しさん (アウアウクー MM0f-n17R)
2019/11/12(火) 08:50:10.74ID:l0mUz5CNM652デフォルトの名無しさん (アウアウクー MM0f-n17R)
2019/11/12(火) 08:58:18.88ID:l0mUz5CNM653デフォルトの名無しさん (ベーイモ MM7f-tVd4)
2019/11/12(火) 10:11:19.95ID:n8VUgOjjM スレチですまん。
俺はVBAをやってるが上司から言われました。(うちの部署、10名のうち、VBAを作れる人は二人だけ、、、)
AIが集計をしてくれるからEXCELは必要ない時代が来るねと言ってた。
反論出来る?
俺はVBAをやってるが上司から言われました。(うちの部署、10名のうち、VBAを作れる人は二人だけ、、、)
AIが集計をしてくれるからEXCELは必要ない時代が来るねと言ってた。
反論出来る?
654デフォルトの名無しさん (ワントンキン MM7f-Uxmt)
2019/11/12(火) 10:27:44.24ID:9Ebm7+hvM 楽しみですねと答える
655デフォルトの名無しさん (アウアウクー MM0f-n17R)
2019/11/12(火) 10:28:50.68ID:l0mUz5CNM まぁAIが台頭してくる頃にはその上司は居ないだろうからスルーでいいんじゃない?
それかそのAIの設定?は誰がやるんだよっ!
そんな事も分からん様なヤツの方が必要なくない?ってw
それかそのAIの設定?は誰がやるんだよっ!
そんな事も分からん様なヤツの方が必要なくない?ってw
656デフォルトの名無しさん (ミカカウィ FF4f-keNo)
2019/11/12(火) 11:50:40.50ID:PU6pNSMVF AI以前に、最近のDXの流れでシステムが合理化されていって、VBAでやってるような無意味な業務自体が消滅するのが先だろうね
657デフォルトの名無しさん (アウアウエー Sa3f-awm9)
2019/11/12(火) 13:09:11.37ID:YXMhvVfEa AIってまたざっくりしてるなぁ
658デフォルトの名無しさん (ドコグロ MM8f-keNo)
2019/11/12(火) 13:51:05.18ID:kiUdBOPaM ○データフロー中に存在する、辻褄合わせのためのデータ加工
→業務フローの見直し、システムの改善、ETLツールの導入等により脱VBA
○ルールベースで実施可能な、機械的な意思決定のためのレポート作成
→完全な自動化により脱VBA
○ルールベースでは困難な、人間的判断を必要とする意思決定のためのレポート作成
→BIツール等に置き換えて脱VBA
AIを使うとしたらこの3番目だけど、そこまでいく前にやるべきことはいくらでもある
それをやり尽くしてAIの導入を検討する頃にはVBAなんかとっくに無くなってるはずだから、VBAとAIが直接競合することなんて無いよ
→業務フローの見直し、システムの改善、ETLツールの導入等により脱VBA
○ルールベースで実施可能な、機械的な意思決定のためのレポート作成
→完全な自動化により脱VBA
○ルールベースでは困難な、人間的判断を必要とする意思決定のためのレポート作成
→BIツール等に置き換えて脱VBA
AIを使うとしたらこの3番目だけど、そこまでいく前にやるべきことはいくらでもある
それをやり尽くしてAIの導入を検討する頃にはVBAなんかとっくに無くなってるはずだから、VBAとAIが直接競合することなんて無いよ
659デフォルトの名無しさん (ワッチョイ 0f8e-8UzB)
2019/11/12(火) 14:15:36.08ID:fOVSc9po0 現在のAIが何をやってるか知らない馬鹿ども
660デフォルトの名無しさん (オッペケ Sr0f-NaRu)
2019/11/12(火) 19:55:22.11ID:CeIzlsxBr VBAが必要ないじゃなくて、EXCELが必要なくなるだからな
人間が介在する限り、なんらかのUIは必要なわけで、AIとEXCELはまったく競合しないわな
人間が介在する限り、なんらかのUIは必要なわけで、AIとEXCELはまったく競合しないわな
661デフォルトの名無しさん (ワッチョイ 9f42-msxt)
2019/11/12(火) 21:10:30.98ID:6BPOxo4o0 昔のSFみたいに透明なパイプを空飛ぶ車が走ったりロボットが何でもやってくれる世界を想像しているようなもんだろ
残念ながら現実は違ったよな
残念ながら現実は違ったよな
662デフォルトの名無しさん (ササクッテロレ Sp0f-9pxj)
2019/11/12(火) 23:57:00.45ID:NVQBnRcZp 構文ミスって無限ループが発生した時にエクセルが固まるやつはなんか対策ないんか?
663デフォルトの名無しさん (ワッチョイ fb7c-Sray)
2019/11/13(水) 01:01:43.28ID:1iCOkal60 >>662
Esc連打したり他のウィンドウをアクティブにしたりを繰り返してみる
Esc連打したり他のウィンドウをアクティブにしたりを繰り返してみる
664デフォルトの名無しさん (ベーイモ MM7f-tVd4)
2019/11/13(水) 08:52:45.90ID:dBffRhEVM VBAよりPythonを覚えた方がいいなぁ。
665デフォルトの名無しさん (スフッ Sdbf-DaD1)
2019/11/13(水) 09:27:16.58ID:QPrlUzWZd666デフォルトの名無しさん (ドコグロ MM3f-keNo)
2019/11/13(水) 09:50:15.66ID:zYuYteZMM >>664
低学歴がPythonやっても仕事無いぞ
低学歴がPythonやっても仕事無いぞ
667デフォルトの名無しさん (ワッチョイ fb7c-t5zK)
2019/11/13(水) 11:30:26.61ID:0dM9Rqjm0 いつかはExcelもPCも必要なくなる時代は来るだろうけど今は必要だからな。データ管理する以上はExcel、Accessは最後まで残りそうだけどな。
将来的に事務職がなくなれば、事務管理してる上司もいらないから、新しい仕事探したほうがいいね
Pythonだけ出来ても仕事ないよ
将来的に事務職がなくなれば、事務管理してる上司もいらないから、新しい仕事探したほうがいいね
Pythonだけ出来ても仕事ないよ
668デフォルトの名無しさん (ワンミングク MMbf-Uxmt)
2019/11/13(水) 12:06:34.79ID:gzl4+/xqM faxすら無くせないのに
669デフォルトの名無しさん (アウアウエー Sa3f-awm9)
2019/11/13(水) 13:00:27.19ID:cKfGi7tYa PC無くなるのはまだ随分先だろ
670デフォルトの名無しさん (スップ Sdbf-DaD1)
2019/11/13(水) 13:55:43.47ID:aJh4//42d 紙の書類を茶封筒で送る郵便すら生き残ってる
671デフォルトの名無しさん (アウアウウー Sacf-ayYe)
2019/11/13(水) 15:18:04.61ID:WJRWmFcXa 学校で奨励されたためにVBAエキスパートを受験しようと思いましたが、仮にスタンダードまで合格すれば理解度はどの程度にまで到達するのでしょうか?
672デフォルトの名無しさん (ドコグロ MM3f-keNo)
2019/11/13(水) 15:26:24.21ID:zYuYteZMM その時点で世の中の自称VBAプロの半数以上よりは上だと思う
世の中のVBA使いのレベルは想像を絶するほど低いから、
少しでも何が役に立つもの作れるようになったら「VBAを使いこなせます」と言っちゃっていいよ
世の中のVBA使いのレベルは想像を絶するほど低いから、
少しでも何が役に立つもの作れるようになったら「VBAを使いこなせます」と言っちゃっていいよ
673デフォルトの名無しさん (ワッチョイ eff7-jCOF)
2019/11/13(水) 16:25:53.60ID:WaSRdoWP0 エキスパート持ってるけどやっぱり試験用の知識って感じだよ
つまらん関数の引数とか
PC環境あれば簡単に確認できるものを暗記でやる感じ
つまらん関数の引数とか
PC環境あれば簡単に確認できるものを暗記でやる感じ
674デフォルトの名無しさん (ワッチョイ 9fda-AXNO)
2019/11/13(水) 19:26:09.82ID:YFdnwmN50 VBAエキスパートなんかあるのか・・。
VBエキスパートではなく。
トランスフォーマー検定じゃなくて、
トランスフォーマーガム検定みたいな感じか?
違うか。
VBエキスパートではなく。
トランスフォーマー検定じゃなくて、
トランスフォーマーガム検定みたいな感じか?
違うか。
675デフォルトの名無しさん (エムゾネ FFbf-/3O/)
2019/11/13(水) 19:34:50.53ID:8BkVy1q9F 求められるのはVBAエスパー
676デフォルトの名無しさん (ワッチョイ 2be5-NsPY)
2019/11/13(水) 19:58:58.25ID:YIACCBmB0 A列で適当な色でフィルターをかけて、B列の可視セルをC列の値✕D列の値にする場合はどうすれば良いでしょうか。
for each in specialcells(xlCellTypeVisible)
b.value=c.value*d.value
next
にしていますが、データ2000くらいあるとと遅いです。
b.specialcells(xlCellTypeVisible).value=を用いれば早くなりそうですが、よく分かりません。
分かる方いましたら教えて下さい。
for each in specialcells(xlCellTypeVisible)
b.value=c.value*d.value
next
にしていますが、データ2000くらいあるとと遅いです。
b.specialcells(xlCellTypeVisible).value=を用いれば早くなりそうですが、よく分かりません。
分かる方いましたら教えて下さい。
677デフォルトの名無しさん (ワッチョイ 9fda-AXNO)
2019/11/13(水) 20:10:53.70ID:YFdnwmN50 何だそりゃww
可視セル以外は計算しちゃいけないのか?
計算してもいいなら、全部配列に入れて計算しちゃえば?
可視セル以外は計算しちゃいけないのか?
計算してもいいなら、全部配列に入れて計算しちゃえば?
678デフォルトの名無しさん (ワッチョイ 2be5-NsPY)
2019/11/13(水) 20:15:05.26ID:YIACCBmB0679デフォルトの名無しさん (オッペケ Sr0f-NaRu)
2019/11/13(水) 20:15:12.55ID:6AWs9S2tr >>676
B列にはじめから計算式入れとけば良いんじゃ
B列にはじめから計算式入れとけば良いんじゃ
680デフォルトの名無しさん (ワッチョイ fb7c-Sray)
2019/11/13(水) 20:23:26.06ID:1iCOkal60681デフォルトの名無しさん (ササクッテロ Sp0f-jIeE)
2019/11/13(水) 21:12:54.98ID:xS2J4sOcp 質問失礼します。
vbaからc++のdllへ引数を渡してc++で処理し、配列をvba側に返したいです。
引数で渡すものは、配列ではありません。
文字列や数値をvbaで受け取ることは出来るのですが、配列はどのようにc++から受け取れば良いのでしょうか?
お願いします。
vbaからc++のdllへ引数を渡してc++で処理し、配列をvba側に返したいです。
引数で渡すものは、配列ではありません。
文字列や数値をvbaで受け取ることは出来るのですが、配列はどのようにc++から受け取れば良いのでしょうか?
お願いします。
682デフォルトの名無しさん (ワッチョイ 2be5-NsPY)
2019/11/13(水) 21:45:08.38ID:YIACCBmB0683デフォルトの名無しさん (ワッチョイ fb7c-Sray)
2019/11/13(水) 21:50:01.18ID:1iCOkal60 >>682
だからボタン押した時色によって計算変えればいいじゃないかと
だからボタン押した時色によって計算変えればいいじゃないかと
684デフォルトの名無しさん (ワッチョイ 6b01-lZUE)
2019/11/13(水) 22:20:19.63ID:nTBpuTY40 このスレって北海道のハゲのおっさん来てるの?
685デフォルトの名無しさん (ワッチョイ 02da-6HYk)
2019/11/14(木) 20:59:40.88ID:17R2nmHB0686デフォルトの名無しさん (オッペケ Sr11-CPZv)
2019/11/15(金) 05:48:17.81ID:yBQ3/wSNr687デフォルトの名無しさん (ワッチョイ 3901-u6X5)
2019/11/15(金) 06:53:06.51ID:PYCwQdmA0 このスレって北海道のハゲのおっさん来てないの?
688デフォルトの名無しさん (JP 0H96-XgEr)
2019/11/15(金) 08:30:23.58ID:1eiULMc8H >>687
こんなとこでハゲ友おっさんずラブっすかw
こんなとこでハゲ友おっさんずラブっすかw
689デフォルトの名無しさん (スップ Sda2-sGiA)
2019/11/15(金) 09:09:18.54ID:kdsqvzvNd690デフォルトの名無しさん (ワンミングク MMd2-NlRl)
2019/11/15(金) 09:16:55.98ID:QHXNBkQLM vbaスタンダードの教材の目次見たけど基礎というか普通に初心者向けという感じがした
逆にこういう内容飛ばしてどうやって使ってるんだろう
逆にこういう内容飛ばしてどうやって使ってるんだろう
691デフォルトの名無しさん (ワッチョイ 02da-6HYk)
2019/11/15(金) 18:37:41.87ID:C4049C6d0 基礎からやるの、良いと思うけどな。
基礎を無視した俺は、ADOもWinAPIもUiAutomationも使えるが、
プロシージャの意味を20年くらい知らなかったぞ。
基礎を無視した俺は、ADOもWinAPIもUiAutomationも使えるが、
プロシージャの意味を20年くらい知らなかったぞ。
692デフォルトの名無しさん (ワッチョイ 3901-u6X5)
2019/11/15(金) 18:58:40.00ID:PYCwQdmA0 スーパーつるっぱげ
693デフォルトの名無しさん (アウアウウー Sa45-dd3P)
2019/11/16(土) 13:07:26.06ID:sIw2xRM6a VBAスレ民はマジで頭弱めだな
694微糖 (ワッチョイ 2eda-zGDE)
2019/11/16(土) 20:01:13.26ID:Owph/MuN0 「置換したい文字列」と「置換文字」を変数として扱って、全体の文字を出力することはできませんか?
Replace関数では、Replace(文字列, 検索文字, 置換文字)とありますが、
文字列の入った変数を第一引数に与えるエラーが出てしまいます。
最終的な目的として、エクセルで定型的なHTMLコードを出力したいのです。
何かよい策がありましたら教えてください。
Sub 企業情報コピーテスト()
Dim i As Long
Dim s1 As String
Dim excelldata1 As String
Dim excelldata2 As String
....
s1 = HtmlSorce.Cells(2, 2).Value
'企業名
excelldata1 = Sheet1.Cells(4, 4).Value
'資本金
excelldata2 = Sheet1.Cells(5, 4).Value
Replace(s1,"tabledata1", excelldata1)
Debug.Print (s1)
End Sub
Replace関数では、Replace(文字列, 検索文字, 置換文字)とありますが、
文字列の入った変数を第一引数に与えるエラーが出てしまいます。
最終的な目的として、エクセルで定型的なHTMLコードを出力したいのです。
何かよい策がありましたら教えてください。
Sub 企業情報コピーテスト()
Dim i As Long
Dim s1 As String
Dim excelldata1 As String
Dim excelldata2 As String
....
s1 = HtmlSorce.Cells(2, 2).Value
'企業名
excelldata1 = Sheet1.Cells(4, 4).Value
'資本金
excelldata2 = Sheet1.Cells(5, 4).Value
Replace(s1,"tabledata1", excelldata1)
Debug.Print (s1)
End Sub
695微糖 (ワッチョイ 2eda-zGDE)
2019/11/16(土) 20:02:05.70ID:Owph/MuN0 ■HtmlSorce.Cells(2, 2)に入っているデータ■
<table width="100%" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>企業名</td>
<td>
tabledata1
</td>
</tr>
<tr>
<td>資本金</td>
<td>
tabledata2
</td>
</tr>
....
</tbody></table>
///////////////////////////////
こんな感じです。どうぞよろしくお願いいたします。
<table width="100%" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>企業名</td>
<td>
tabledata1
</td>
</tr>
<tr>
<td>資本金</td>
<td>
tabledata2
</td>
</tr>
....
</tbody></table>
///////////////////////////////
こんな感じです。どうぞよろしくお願いいたします。
696デフォルトの名無しさん (ワッチョイ 65ce-iGNt)
2019/11/16(土) 20:06:56.33ID:sGW0vpYA0697デフォルトの名無しさん (ワッチョイ cd7c-/PCw)
2019/11/16(土) 20:08:04.72ID:TSYRRFtw0 >>694
普通はエラー出ない
普通はエラー出ない
698微糖 (ワッチョイ 2eda-zGDE)
2019/11/16(土) 20:10:44.84ID:Owph/MuN0 すいません。できた 私はあほでした。
s1 = Replace(s1,"tabledata1", excelldata1)
で出力できました。
s1 = Replace(s1,"tabledata1", excelldata1)
で出力できました。
699微糖 (ワッチョイ 2eda-zGDE)
2019/11/16(土) 20:11:37.38ID:Owph/MuN0 みんな、早い。。ありがとう。。
700デフォルトの名無しさん (アークセー Sx11-CPZv)
2019/11/17(日) 03:29:18.67ID:2cbrHYYdx レンダリングエンジンとしてExcelを使ってるの?
つらすぎるなそれは
つらすぎるなそれは
701デフォルトの名無しさん (ワッチョイ 224b-NlRl)
2019/11/17(日) 04:16:20.60ID:ssaK56un0 レンダリングエンジンの意味間違ってるよ
702デフォルトの名無しさん (ワッチョイ 65ce-iGNt)
2019/11/17(日) 06:32:04.83ID:xHzCYEPp0 使ってるかどうかは、これだけじゃ判断できない
可能性はあるけど断言はできないから
可能性はあるけど断言はできないから
703微動 (ワッチョイ 2eda-zGDE)
2019/11/17(日) 11:35:29.77ID:7JpkRiZ80 わたくしのことですか??
コーディングは、いつもAtom使って手打ちしてるよ。
ただ、定期的にエクセルで入稿してくる案件があるので、
毎回エクセルからデータを手作業でコピペするのがしんどくて
コピペミスもあるし。
VBAでまるっとタグが出力できればいいなと。
他に良い方法がみあたらないし、これがベストかと。
思ってるとこでし。
コーディングは、いつもAtom使って手打ちしてるよ。
ただ、定期的にエクセルで入稿してくる案件があるので、
毎回エクセルからデータを手作業でコピペするのがしんどくて
コピペミスもあるし。
VBAでまるっとタグが出力できればいいなと。
他に良い方法がみあたらないし、これがベストかと。
思ってるとこでし。
704デフォルトの名無しさん (アウアウウー Sa45-woiy)
2019/11/17(日) 11:38:28.01ID:iKuebie5a Atomとか久しぶりに聞いたな
VSCodeに完全敗北して利用者がほとんど乗り換えた挙げ句に開発元がMSに買収されて完全に開発も終わった死んだエディタだよ
VSCodeに完全敗北して利用者がほとんど乗り換えた挙げ句に開発元がMSに買収されて完全に開発も終わった死んだエディタだよ
705微糖 (ワッチョイ 2eda-zGDE)
2019/11/17(日) 11:47:05.51ID:7JpkRiZ80 そんなこといわなくても、、、
web系は、sublimetext か Atom が多いと思う。まれに秀丸さんもいるお。
web系は、sublimetext か Atom が多いと思う。まれに秀丸さんもいるお。
706デフォルトの名無しさん (ワッチョイ cd7c-/PCw)
2019/11/17(日) 11:51:44.83ID:+9SinR1u0 >>705
そいつは触らなくていいやつだよ
そいつは触らなくていいやつだよ
707微糖 (ワッチョイ 2eda-zGDE)
2019/11/17(日) 11:52:22.26ID:7JpkRiZ80 ここらへんにいらっしゃるかたは
R列が何番目か直ぐに頭にでてくるのかしらん。
セル選択したら、行列番号がすぐわかる表示設定あるといいですねえ。
R列が何番目か直ぐに頭にでてくるのかしらん。
セル選択したら、行列番号がすぐわかる表示設定あるといいですねえ。
708デフォルトの名無しさん (ドコグロ MM49-woiy)
2019/11/17(日) 11:52:40.84ID:RwF92niuM いつの話だよ
Web系のAtomユーザーはほとんどVSCodeに乗り換えたよ
Web系のAtomユーザーはほとんどVSCodeに乗り換えたよ
709デフォルトの名無しさん (ワッチョイ 86c9-jvSr)
2019/11/17(日) 12:25:47.38ID:sTIVZZab0710デフォルトの名無しさん (アークセー Sx11-CPZv)
2019/11/17(日) 12:31:12.53ID:Sxy4Nq05x >>707
言ってることがよくわからんけど↓みたいにVBEでコンソール出力するのは駄目なの?
?Selection.Item(1).Row & ", " & Selection.Item(1).Column
言ってることがよくわからんけど↓みたいにVBEでコンソール出力するのは駄目なの?
?Selection.Item(1).Row & ", " & Selection.Item(1).Column
711微糖 (ワッチョイ 2eda-zGDE)
2019/11/17(日) 12:46:43.50ID:7JpkRiZ80 いろいろ提案ありがとうございます。
普通に対応表を手元においときます。
普通に対応表を手元においときます。
712デフォルトの名無しさん (ワッチョイ cd7c-/PCw)
2019/11/17(日) 13:14:49.52ID:+9SinR1u0 >>707
A1とR1C1表示を切り替えられるショートカット作った
A1とR1C1表示を切り替えられるショートカット作った
713デフォルトの名無しさん (ワッチョイ e9f1-Xz/Q)
2019/11/17(日) 13:37:03.64ID:3mRPp1GD0 まれに禿もいるよ
714デフォルトの名無しさん (ワッチョイ e9d2-gqPR)
2019/11/17(日) 14:08:51.89ID:1WE0juC20 >>707
1行目に連番を振っておく
1行目に連番を振っておく
715デフォルトの名無しさん (ワッチョイ c668-iGNt)
2019/11/17(日) 15:12:07.26ID:6UewZHZj0 >>707
機能はいらんかな。見たくなったらcolumn()入れてる
機能はいらんかな。見たくなったらcolumn()入れてる
716デフォルトの名無しさん (ワッチョイ 3901-0xny)
2019/11/17(日) 18:02:42.14ID:iBcgGvQr0 北海道のグラサンの禿はここにきてないの?
717デフォルトの名無しさん (ワッチョイ 05da-6HYk)
2019/11/17(日) 19:02:54.92ID:FdUgz5q60 俺も=Column()入れてるわ。
ていうかね、何でどっちか片方だけなんだよ。
A(1)、B(2)とか両方表示するモード付けりゃいいのに。
ていうかね、何でどっちか片方だけなんだよ。
A(1)、B(2)とか両方表示するモード付けりゃいいのに。
718デフォルトの名無しさん (ワッチョイ c668-iGNt)
2019/11/17(日) 19:28:55.74ID:6UewZHZj0719デフォルトの名無しさん (アークセー Sx11-CPZv)
2019/11/17(日) 19:33:09.97ID:Sxy4Nq05x 現状自作するしかないわな
720デフォルトの名無しさん (ワッチョイ 8201-0xny)
2019/11/17(日) 19:38:26.25ID:SNu9npot0 むしろ列番号が必要なことって少なくね?
721デフォルトの名無しさん (ワッチョイ c668-iGNt)
2019/11/17(日) 19:43:53.48ID:6UewZHZj0 indirectやVBAで古いデータを整備する時にたまに必要になる
722デフォルトの名無しさん (JP 0H92-iGNt)
2019/11/17(日) 22:37:01.66ID:8Px/zAQ8H 1行目1列目にランダムに数字が入力されている表において、その数字を上から順番に足して2列目にその合計を表示させるにはどう書けばいいでしょうか?(下みたいな感じで)
1列目 2列目
--------------------
4 4
7 11
8 19
12 31
15 46
2 48
1列目 2列目
--------------------
4 4
7 11
8 19
12 31
15 46
2 48
723デフォルトの名無しさん (ワッチョイ 224b-NlRl)
2019/11/17(日) 22:40:14.20ID:ssaK56un0 上から順番に足して2列目にその合計を表示させればいいですよ
724デフォルトの名無しさん (アークセー Sx11-CPZv)
2019/11/17(日) 22:55:50.76ID:Sxy4Nq05x >>722
ワークシート関数じゃ駄目なの?
ワークシート関数じゃ駄目なの?
725デフォルトの名無しさん (ワッチョイ cd7c-/PCw)
2019/11/17(日) 23:11:53.16ID:+9SinR1u0 >>722
左のセル+上のセル
左のセル+上のセル
726デフォルトの名無しさん (ワッチョイ cd7c-/PCw)
2019/11/17(日) 23:14:14.11ID:+9SinR1u0 A2から対象行までを合計
727デフォルトの名無しさん (ワッチョイ 0610-Xbus)
2019/11/18(月) 00:38:18.28ID:NH6dP3qE0 for i = 1to10
v=v+cel(i,1)
cel (i,2)=v
next
みたいな感じ?
v=v+cel(i,1)
cel (i,2)=v
next
みたいな感じ?
728デフォルトの名無しさん (ワッチョイ 8279-dW04)
2019/11/18(月) 00:45:00.05ID:+I12EpJt0 なんだcelて
ちゃんと書けボケナス
ちゃんと書けボケナス
729デフォルトの名無しさん (ワッチョイ 6d8e-2sI3)
2019/11/18(月) 01:27:00.60ID:pxOyK5Ui0 >>722
馬鹿は死ねよ
馬鹿は死ねよ
730デフォルトの名無しさん (ワッチョイ 822c-Lnqu)
2019/11/18(月) 04:45:54.36ID:SrAXqM1K0 Ruby で作った
nums = <<"EOT".lines( chomp: true ).map( &:to_i ) # 数字の配列。改行は削除
4
7
8
12
15
2
EOT
totals = nums.each_with_object( [ 0 ] ) {
|num, ary| ary.push( ary.last + num ) }
totals.shift # 先頭要素の0 を削除する
p totals #=> [4, 11, 19, 31, 46, 48]
nums = <<"EOT".lines( chomp: true ).map( &:to_i ) # 数字の配列。改行は削除
4
7
8
12
15
2
EOT
totals = nums.each_with_object( [ 0 ] ) {
|num, ary| ary.push( ary.last + num ) }
totals.shift # 先頭要素の0 を削除する
p totals #=> [4, 11, 19, 31, 46, 48]
731デフォルトの名無しさん (ドコグロ MM15-dzja)
2019/11/18(月) 15:14:40.58ID:ScNSEd7IM >>722
Sub sample1()
Dim i Range
Range("B1") = Range("A1")
For i = 2 To 6
Cells(i, 2) = Cells(i - 1, 2) + Cells(i, 1)
Next i
end sub
A列が不特定多数で出力の速さを求めるのなら
Sub sample2()
Dim i Range,j Range
j = WorksheetFunction.Count(Range("A:A"))
Application.ScreenUpdating = False
Range("B1") = Range("A1")
For i = 2 To j
Cells(i, 2) = Cells(i - 1, 2) + Cells(i, 1)
Next i
Application.ScreenUpdating = True
end sub
Sub sample1()
Dim i Range
Range("B1") = Range("A1")
For i = 2 To 6
Cells(i, 2) = Cells(i - 1, 2) + Cells(i, 1)
Next i
end sub
A列が不特定多数で出力の速さを求めるのなら
Sub sample2()
Dim i Range,j Range
j = WorksheetFunction.Count(Range("A:A"))
Application.ScreenUpdating = False
Range("B1") = Range("A1")
For i = 2 To j
Cells(i, 2) = Cells(i - 1, 2) + Cells(i, 1)
Next i
Application.ScreenUpdating = True
end sub
732デフォルトの名無しさん (ドコグロ MM15-dzja)
2019/11/18(月) 15:19:20.54ID:ScNSEd7IM 間違えた
Sub sample1()
Dim i As Long
Range("B1") = Range("A1")
For i = 2 To 6
Cells(i, 2) = Cells(i - 1, 2) + Cells(i, 1)
Next i
end sub
A列が不特定多数で出力の速さを求めるのなら
Sub sample2()
Dim i As Long,j As Long
j = WorksheetFunction.Count(Range("A:A"))
Application.ScreenUpdating = False
Range("B1") = Range("A1")
For i = 2 To j
Cells(i, 2) = Cells(i - 1, 2) + Cells(i, 1)
Next i
Application.ScreenUpdating = True
end sub
Sub sample1()
Dim i As Long
Range("B1") = Range("A1")
For i = 2 To 6
Cells(i, 2) = Cells(i - 1, 2) + Cells(i, 1)
Next i
end sub
A列が不特定多数で出力の速さを求めるのなら
Sub sample2()
Dim i As Long,j As Long
j = WorksheetFunction.Count(Range("A:A"))
Application.ScreenUpdating = False
Range("B1") = Range("A1")
For i = 2 To j
Cells(i, 2) = Cells(i - 1, 2) + Cells(i, 1)
Next i
Application.ScreenUpdating = True
end sub
733デフォルトの名無しさん (スッップ Sda2-sGiA)
2019/11/18(月) 15:42:28.46ID:cwF5jgoMd >>707
VBEのメニュー上にテキストボックス作って数値とアルファベット相互変換する奴作れば。
VBEのメニュー上にテキストボックス作って数値とアルファベット相互変換する奴作れば。
734デフォルトの名無しさん (スッップ Sda2-sGiA)
2019/11/18(月) 15:43:19.48ID:cwF5jgoMd >>720
寧ろ列番号の方が必要。
寧ろ列番号の方が必要。
735デフォルトの名無しさん (スッップ Sda2-sGiA)
2019/11/18(月) 15:53:04.73ID:cwF5jgoMd >>722
Range("B1:B10").Value="=SUM($A$1:$A1)"
'関数残したくなければ下を追加
Range("B1:B10").Value=Range("B1:B10").Value
Range("B1:B10").Value="=SUM($A$1:$A1)"
'関数残したくなければ下を追加
Range("B1:B10").Value=Range("B1:B10").Value
736デフォルトの名無しさん (ドコグロ MM4a-0xny)
2019/11/18(月) 17:07:56.73ID:S9/8fJfLM >>734
どんなときに必要なの?
どんなときに必要なの?
737デフォルトの名無しさん (ワッチョイ eecc-7HT4)
2019/11/18(月) 18:10:29.63ID:7QICIGub0 マクロ実行ブックと同じフォルダ内にある"CCT"というブックに
1つのシートがあって、そのシートをマクロ実行ブックの"CCT1"に貼り付けたいのですが
"CCT"内のシート名が毎回変わってしまうので、変わってもコピペができるマクロをおしえてください
Workbooks.Open ThisWorkbook.Path & "\CCT", ReadOnly:=True
Sheets("*").Cells.Copy ThisWorkbook.Sheets("CCT1").[A1]
ActiveWindow.Close savechanges:=False
1つのシートがあって、そのシートをマクロ実行ブックの"CCT1"に貼り付けたいのですが
"CCT"内のシート名が毎回変わってしまうので、変わってもコピペができるマクロをおしえてください
Workbooks.Open ThisWorkbook.Path & "\CCT", ReadOnly:=True
Sheets("*").Cells.Copy ThisWorkbook.Sheets("CCT1").[A1]
ActiveWindow.Close savechanges:=False
738デフォルトの名無しさん (スッップ Sda2-sGiA)
2019/11/18(月) 18:25:23.23ID:cwF5jgoMd >>736
普通はCells(i, j)を使うから
普通はCells(i, j)を使うから
739デフォルトの名無しさん (スッップ Sda2-sGiA)
2019/11/18(月) 18:33:30.81ID:cwF5jgoMd >>737
Worksheets(1)じゃ駄目なん?
Worksheets(1)じゃ駄目なん?
740デフォルトの名無しさん (ドコグロ MM4a-0xny)
2019/11/18(月) 19:06:26.91ID:S9/8fJfLM741デフォルトの名無しさん (ワッチョイ 0d7c-RQWt)
2019/11/18(月) 19:14:56.88ID:sS2XhUCG0 vbaを勉強してるのですが、specialcellsとusedrangeの違いが分からないのですが、どんな時に使い分けるのですか?
742デフォルトの名無しさん (ワッチョイ 224b-NlRl)
2019/11/18(月) 19:45:04.18ID:TkavPukF0 どっちも普段使わない
743デフォルトの名無しさん (スッップ Sda2-sGiA)
2019/11/18(月) 19:45:09.69ID:cwF5jgoMd744デフォルトの名無しさん (ワッチョイ cd7c-/PCw)
2019/11/18(月) 19:46:05.14ID:HkQQG0+L0 >>737
シート名かシートの順番を固定しないと無理
シート名かシートの順番を固定しないと無理
745デフォルトの名無しさん (ワッチョイ cd7c-/PCw)
2019/11/18(月) 19:49:12.48ID:HkQQG0+L0746デフォルトの名無しさん (スッップ Sda2-sGiA)
2019/11/18(月) 19:50:38.34ID:cwF5jgoMd747デフォルトの名無しさん (ドコグロ MM4a-0xny)
2019/11/18(月) 19:55:46.17ID:S9/8fJfLM >>743
お前がそうだというだけの話なのね
お前がそうだというだけの話なのね
748デフォルトの名無しさん (スッップ Sda2-sGiA)
2019/11/18(月) 19:56:31.57ID:cwF5jgoMd >>747
そうだよ。
そうだよ。
749デフォルトの名無しさん (スッップ Sda2-sGiA)
2019/11/18(月) 19:58:05.76ID:cwF5jgoMd 今までの経験上、組める奴は同意見が多いけどね。
750デフォルトの名無しさん (ワッチョイ c668-iGNt)
2019/11/18(月) 20:05:00.70ID:NN3IfGCl0 >>740
列方向だけに伸ばす事は少ないけど、
for k = 1 to 3
for i = 1 to 最終行
cells(i,k)
next
next
みたいに二重ループにすることはたまによくあるよ
列方向だけに伸ばす事は少ないけど、
for k = 1 to 3
for i = 1 to 最終行
cells(i,k)
next
next
みたいに二重ループにすることはたまによくあるよ
751デフォルトの名無しさん (ワッチョイ 224b-NlRl)
2019/11/18(月) 20:05:54.63ID:TkavPukF0 >>737
シートが1枚しか無いならブック開いてからアクティブシート取得すればいいのでは
シートが1枚しか無いならブック開いてからアクティブシート取得すればいいのでは
752デフォルトの名無しさん (スフッ Sda2-LOTu)
2019/11/18(月) 20:08:35.28ID:OvcXdQbJd Set
753デフォルトの名無しさん (ワッチョイ 8201-0xny)
2019/11/18(月) 20:22:40.48ID:lwVIqPwD0754デフォルトの名無しさん (スッップ Sda2-sGiA)
2019/11/18(月) 21:22:26.89ID:cwF5jgoMd >>753
俺の周りって結構広いんで。
俺の周りって結構広いんで。
755デフォルトの名無しさん (ワッチョイ e194-qxAY)
2019/11/18(月) 21:40:37.27ID:/hFPyym30 Rubyなら一行で書ける程度の事をVBAは面倒だね
756デフォルトの名無しさん (ワッチョイ 8201-0xny)
2019/11/18(月) 22:02:21.62ID:lwVIqPwD0 >>754
はいはいw
はいはいw
757デフォルトの名無しさん (アークセー Sx11-CPZv)
2019/11/18(月) 22:39:37.88ID:VbUqW+zkx 俺はCells派
任意のセル範囲内での位置座標を相対指定できてめちゃくちゃ便利
Cells(i)もCells(i, j)もよくつかうしSelection.Cells〜とかよくやる
任意のセル範囲内での位置座標を相対指定できてめちゃくちゃ便利
Cells(i)もCells(i, j)もよくつかうしSelection.Cells〜とかよくやる
758デフォルトの名無しさん (ワッチョイ 0610-Xbus)
2019/11/18(月) 23:25:47.41ID:NH6dP3qE0 >>728
携帯で打ってるのに無理ゆうなよ。
携帯で打ってるのに無理ゆうなよ。
759デフォルトの名無しさん (アウアウウー Sa45-4N22)
2019/11/19(火) 06:07:21.04ID:hrMAmFVPa >>754
ウエストな
ウエストな
760デフォルトの名無しさん (ワッチョイ c602-jK0f)
2019/11/19(火) 09:42:21.51ID:i5CWN+mw0 >>754
カエルかな?
カエルかな?
761デフォルトの名無しさん (ワッチョイ c6f7-G4Z9)
2019/11/19(火) 12:42:00.23ID:QxFuappz0 >>741
SpeciallCellsのほうはユーザー定義関数で使うと不具合あったはず
SpeciallCellsのほうはユーザー定義関数で使うと不具合あったはず
762デフォルトの名無しさん (オッペケ Sr11-bUGG)
2019/11/19(火) 22:43:20.17ID:UG4gZLw4r >>740
RangeをVariantに代入して
For c = 1 To Ubound(Variant)
Variant(1,c)...
が一番楽
だけどRangeが1セルだけの場合上手く代入できない気がする
RangeをVariantに代入して
For c = 1 To Ubound(Variant)
Variant(1,c)...
が一番楽
だけどRangeが1セルだけの場合上手く代入できない気がする
763デフォルトの名無しさん (スッップ Sda2-sGiA)
2019/11/20(水) 13:27:25.20ID:IaTx24D1d764デフォルトの名無しさん (アウアウウー Sa9d-d1iG)
2019/11/21(木) 15:35:37.98ID:2y1jGWDSa http://officetanaka.net/excel/vba/tips/tips38.htm
Sub Sample1()
Dim RE, strPattern As String, r As Range
Set RE = CreateObject("VBScript.RegExp")
strPattern = "SUM\("
With RE
.Pattern = strPattern ''検索パターンを設定
.IgnoreCase = True ''大文字と小文字を区別しない
.Global = True ''文字列全体を検索
For Each r In ActiveSheet.UsedRange
If .Test(r.Formula) Then r.Interior.ColorIndex = 3
Next r
End With
Set RE = Nothing
End Sub
このソースのDim REの部分ってこのサブルーチンだけを動かすようなマクロの場合いらなくね?
Sub Sample1()
Dim RE, strPattern As String, r As Range
Set RE = CreateObject("VBScript.RegExp")
strPattern = "SUM\("
With RE
.Pattern = strPattern ''検索パターンを設定
.IgnoreCase = True ''大文字と小文字を区別しない
.Global = True ''文字列全体を検索
For Each r In ActiveSheet.UsedRange
If .Test(r.Formula) Then r.Interior.ColorIndex = 3
Next r
End With
Set RE = Nothing
End Sub
このソースのDim REの部分ってこのサブルーチンだけを動かすようなマクロの場合いらなくね?
765デフォルトの名無しさん (アウアウカー Sa55-d1iG)
2019/11/21(木) 15:37:08.52ID:LUwjW7Cja766デフォルトの名無しさん (オッペケ Src5-/8GO)
2019/11/21(木) 16:45:06.69ID:CoNvnJper767デフォルトの名無しさん (アウアウカー Sa55-d1iG)
2019/11/21(木) 17:16:22.54ID:LUwjW7Cja768デフォルトの名無しさん (アウアウカー Sa55-d1iG)
2019/11/21(木) 17:22:58.39ID:LUwjW7Cja vbaの設計的にはSet RE = CreateObject("VBScript.RegExp") これだけで初期化できてるからdimで宣言する必要があるのかコンピューターサイエンスサイドの意味で聞きたい
769デフォルトの名無しさん (スッップ Sd33-Q8jM)
2019/11/21(木) 23:25:18.32ID:BtgKOXu8d 普通は変数宣言を強制するようになってるだろ。
770デフォルトの名無しさん (ワッチョイ 8901-hZ32)
2019/11/22(金) 00:36:07.32ID:kJTMU1Ov0 スモリートインハゲラクター
771デフォルトの名無しさん (アークセー Sxc5-dWLu)
2019/11/22(金) 01:53:36.59ID:NJe7bE9qx >>768
モジュールレベルで変数宣言を強制している場合にはプロシージャ内のDimで宣言していないとコンパイルエラーになる
型指定なしのDim宣言ってのは実際にはVariant型変数の宣言なので、代入時に型評価をしているだけだけどね
RegExp型のメモリ領域をDim宣言時に確保するとなると参照設定が必要でそれはそれでまた別の問題が生じる
モジュールレベルで変数宣言を強制している場合にはプロシージャ内のDimで宣言していないとコンパイルエラーになる
型指定なしのDim宣言ってのは実際にはVariant型変数の宣言なので、代入時に型評価をしているだけだけどね
RegExp型のメモリ領域をDim宣言時に確保するとなると参照設定が必要でそれはそれでまた別の問題が生じる
772デフォルトの名無しさん (スプッッ Sd73-MY8M)
2019/11/22(金) 11:54:02.74ID:L6bND2U2d クラスモジュールを使ってオブジェクト指向(厳密には違うらしいですが…)を理解したいと思っています
Newでオブジェクト生成して、get set letを使いながらプログラムを書くという認識で合っているでしょうか?
Newでオブジェクト生成して、get set letを使いながらプログラムを書くという認識で合っているでしょうか?
773デフォルトの名無しさん (アウアウカー Sa55-d1iG)
2019/11/22(金) 12:01:14.10ID:BVLtoDL5a >>771
モジュールレベルで変数宣言を強制している場合には必要なのね、ありがとう良くわかった。
set RE = nothingなんだけどこのサブルーチン実行完了したらメモリとか解放されるからnothingやらなくてもスタック領域占有しないと思ってるんだけど実際のところどうなの?そもそも"VBScript.RegExp"の占有ってスタック領域であってる?
そもそもVBAのこの
モジュールレベルで変数宣言を強制している場合には必要なのね、ありがとう良くわかった。
set RE = nothingなんだけどこのサブルーチン実行完了したらメモリとか解放されるからnothingやらなくてもスタック領域占有しないと思ってるんだけど実際のところどうなの?そもそも"VBScript.RegExp"の占有ってスタック領域であってる?
そもそもVBAのこの
774デフォルトの名無しさん (ワンミングク MMd3-Na0O)
2019/11/22(金) 12:14:16.35ID:rCku/67RM 発達障害か何かか?
775デフォルトの名無しさん (アウアウカー Sa55-d1iG)
2019/11/22(金) 12:16:14.12ID:BVLtoDL5a >>774
教えてよ知ってるなら質問してたからこれも
教えてよ知ってるなら質問してたからこれも
776デフォルトの名無しさん (アウアウカー Sa55-d1iG)
2019/11/22(金) 12:19:40.92ID:BVLtoDL5a 実際に正常終了する前提ならset RE = nothingしなくてもメモリリーク起きないのか知りたい
777デフォルトの名無しさん (ワンミングク MMd3-Na0O)
2019/11/22(金) 12:25:56.88ID:rCku/67RM 自分で検証して納得しなさいよ
778デフォルトの名無しさん (アウアウカー Sa55-d1iG)
2019/11/22(金) 12:44:22.42ID:BVLtoDL5a779デフォルトの名無しさん (ワッチョイ 1301-hZ32)
2019/11/22(金) 12:55:31.14ID:VuiommTl0 >>774
相手するなよ…
相手するなよ…
780デフォルトの名無しさん (アウアウカー Sa55-d1iG)
2019/11/22(金) 13:00:58.08ID:BVLtoDL5a781デフォルトの名無しさん (アウアウカー Sa55-d1iG)
2019/11/22(金) 13:03:14.92ID:BVLtoDL5a アインシュタイン「6歳の子供に説明できなければ、理解したとは言えない。」
782デフォルトの名無しさん (ワッチョイ 7b02-Ghh+)
2019/11/22(金) 15:54:34.05ID:ioMkz3g00 6歳って小1とかだよな?
小1が5chか・・・
小1が5chか・・・
783デフォルトの名無しさん (ワッチョイ c1da-/L9V)
2019/11/22(金) 16:07:33.42ID:TX54f/dc0 名探偵かよ
784デフォルトの名無しさん (アウアウカー Sa55-d1iG)
2019/11/22(金) 16:59:48.42ID:K4D/35s4a785デフォルトの名無しさん (アウアウカー Sa55-d1iG)
2019/11/22(金) 17:00:31.99ID:K4D/35s4a お前ら答えられないからって逃げすぎw
786デフォルトの名無しさん (ワッチョイ 132c-4eZD)
2019/11/22(金) 18:58:21.55ID:IgRfeEG+0 CreateObject("VBScript.RegExp")
VBScript のオブジェクトを作っているのだろ。
別のプロセスか、DLL から作っているのだろ
とても、スタックとは思えない
VBScript のオブジェクトを作っているのだろ。
別のプロセスか、DLL から作っているのだろ
とても、スタックとは思えない
787デフォルトの名無しさん (オッペケ Src5-/8GO)
2019/11/22(金) 19:08:12.45ID:/fRhojahr そもそも占有領域とはなにを指しているのか
VBAのローカル変数はスタックにとられる
それ以上はそのオブジェクト次第
VBAのローカル変数はスタックにとられる
それ以上はそのオブジェクト次第
788デフォルトの名無しさん (アークセー Sxc5-dWLu)
2019/11/23(土) 09:54:08.90ID:W8QCJ151x >>773
VBScriptの正規表現オブジェクトはIE付属のエンジンだからヒープにインスタンス作成してるだろうし、参照カウンタ0になったら自動破棄されてるんじゃないの
このサブルーチンからの参照がなくなっても別の参照が発生してたらインスタンスは残るでしょ
だから、このサブルーチンが正常終了するかどうかとメモリリークが起きるかどうかは別問題だと思う
サブルーチン外に制御が渡った段階でこの正規表現オブジェクトがどこかのプロセスによって参照されていて、そっちの制御フローの中に猛烈なメモリ負荷が発生する処理が存在すれば、メモリリークの原因になりうる
execループで空文字をマッチさせていてindexが進まずに無限ループしたりとかね
それと、あなたの認識通り、End Subでスタック内のローカル変数のアドレス空間自体が解放されるので、End Subの直前にこの変数SEにNothingを代入する理由はない
モジュールレベルの変数やグローバル変数を使う場合は逆に、制御フロー上の要求としてサブルーチン終了時に参照アドレスをクリアしなければならない場合もある
VBScriptの正規表現オブジェクトはIE付属のエンジンだからヒープにインスタンス作成してるだろうし、参照カウンタ0になったら自動破棄されてるんじゃないの
このサブルーチンからの参照がなくなっても別の参照が発生してたらインスタンスは残るでしょ
だから、このサブルーチンが正常終了するかどうかとメモリリークが起きるかどうかは別問題だと思う
サブルーチン外に制御が渡った段階でこの正規表現オブジェクトがどこかのプロセスによって参照されていて、そっちの制御フローの中に猛烈なメモリ負荷が発生する処理が存在すれば、メモリリークの原因になりうる
execループで空文字をマッチさせていてindexが進まずに無限ループしたりとかね
それと、あなたの認識通り、End Subでスタック内のローカル変数のアドレス空間自体が解放されるので、End Subの直前にこの変数SEにNothingを代入する理由はない
モジュールレベルの変数やグローバル変数を使う場合は逆に、制御フロー上の要求としてサブルーチン終了時に参照アドレスをクリアしなければならない場合もある
789デフォルトの名無しさん (ワッチョイ c1da-pyDD)
2019/11/23(土) 10:41:17.70ID:oBrftrQi0 Windows10で、SetLayeredWindowAttributesのLWA_COLORKEYを正常動作させる方法ある?
Windows7でやる方法は知ってるので、7の場合の回答は不要。
Windows7でやる方法は知ってるので、7の場合の回答は不要。
790デフォルトの名無しさん (ワッチョイ d9bb-cCMV)
2019/11/23(土) 13:40:54.04ID:Rc1avnYX0 with cells(i,j)
.cut .offset(1,0)
.value=k
end with
cells(i,j)にkが入らず、cells(i+1,j)にkが入るんだけど仕様?
.cut .offset(1,0)
.value=k
end with
cells(i,j)にkが入らず、cells(i+1,j)にkが入るんだけど仕様?
791デフォルトの名無しさん (アークセー Sxc5-dWLu)
2019/11/23(土) 13:47:27.73ID:W8QCJ151x792デフォルトの名無しさん (ワッチョイ 117c-+Oop)
2019/11/23(土) 14:19:57.78ID:r/KLZ+570 >>790
cut貼り付けでセルそのものが移動してるから
cut貼り付けでセルそのものが移動してるから
793デフォルトの名無しさん (ワッチョイ 8901-hZ32)
2019/11/23(土) 14:44:54.38ID:2nUI7BT80 ストリートインハゲラクターはここに来ないの?
794デフォルトの名無しさん (スフッ Sd33-cCMV)
2019/11/23(土) 17:04:16.03ID:S321d+MCd795デフォルトの名無しさん (ワッチョイ 117c-+Oop)
2019/11/23(土) 17:11:07.86ID:r/KLZ+570 仕様というか、代入先を自分で変えてることは伝わってるんだろうか
796デフォルトの名無しさん (アークセー Sxc5-dWLu)
2019/11/23(土) 19:56:27.67ID:mhmkRKEvx >>790
仕様ではなくて君のコードの動作の問題
同じ綴りのオブジェクト式の記述をまとめる文法ルールとしてWithを理解するのは大きな間違い
Withで任意のセルを取得して和のセルに貼り付けたらEnd Withまでずっと貼り付けられた先のセルを参照する
その状態で.Valueに値を代入したら、当然貼り付けられたセルの値が変わる
With Cells(i, j)
.Cut .Offset(1,0)
End With
Cells(i, j).Value = k
とすれば何の問題もない
仕様ではなくて君のコードの動作の問題
同じ綴りのオブジェクト式の記述をまとめる文法ルールとしてWithを理解するのは大きな間違い
Withで任意のセルを取得して和のセルに貼り付けたらEnd Withまでずっと貼り付けられた先のセルを参照する
その状態で.Valueに値を代入したら、当然貼り付けられたセルの値が変わる
With Cells(i, j)
.Cut .Offset(1,0)
End With
Cells(i, j).Value = k
とすれば何の問題もない
797デフォルトの名無しさん (ワッチョイ 1301-hZ32)
2019/11/23(土) 20:39:38.41ID:IdTl1qyV0 >>795
わかってて聞いてるんでしょ
わかってなきゃわざわざ「仕様?」なんて聞き方しないだろうし
With で参照してるセルを変更した時の挙動を書いてるドキュメントは見たことないから仕様かどうかはよくわからん
誰か見たことある人いる?
わかってて聞いてるんでしょ
わかってなきゃわざわざ「仕様?」なんて聞き方しないだろうし
With で参照してるセルを変更した時の挙動を書いてるドキュメントは見たことないから仕様かどうかはよくわからん
誰か見たことある人いる?
798デフォルトの名無しさん (アークセー Sxc5-dWLu)
2019/11/23(土) 22:14:08.35ID:mhmkRKEvx799デフォルトの名無しさん (ワッチョイ 7b68-QS5Z)
2019/11/23(土) 22:28:15.56ID:K0UQgc8i0 >>790
仕様
cut後もcells()で返ってくるオブジェクトは同じ
そういや上書きされるcells()はどうなるのか、と試してみたらnothingになっていた
この辺はExcelのカットアンドペーストなどでおなじみだけど、いざやってみると不思議な気分だ
Sub foo()
i = 2
j = 3
k = "k-"
Set before = Cells(3, 3)
With Cells(i, j)
.Cut .Offset(1, 0)
.Value = k
End With
Debug.Print before.Value
End Sub
仕様
cut後もcells()で返ってくるオブジェクトは同じ
そういや上書きされるcells()はどうなるのか、と試してみたらnothingになっていた
この辺はExcelのカットアンドペーストなどでおなじみだけど、いざやってみると不思議な気分だ
Sub foo()
i = 2
j = 3
k = "k-"
Set before = Cells(3, 3)
With Cells(i, j)
.Cut .Offset(1, 0)
.Value = k
End With
Debug.Print before.Value
End Sub
800デフォルトの名無しさん (アークセー Sxc5-dWLu)
2019/11/23(土) 22:52:50.40ID:mhmkRKEvx >>799
不思議でも何でもない
変数によるオブジェクト参照の仕組みをもっと正確に理解すべきだろ
カットは貼り付け先のセルの削除と貼り付け元のセルの埋め込みを伴う処理だぞ
貼り付けを行った段階で、変数のスタックに格納されていた貼り付け先のセルのポインタが無効になるので、貼り付け後に変数の中身を評価するとNothingになるだけ
セルの仕様ではなくオブジェクト参照の仕組みからして当然
不思議でも何でもない
変数によるオブジェクト参照の仕組みをもっと正確に理解すべきだろ
カットは貼り付け先のセルの削除と貼り付け元のセルの埋め込みを伴う処理だぞ
貼り付けを行った段階で、変数のスタックに格納されていた貼り付け先のセルのポインタが無効になるので、貼り付け後に変数の中身を評価するとNothingになるだけ
セルの仕様ではなくオブジェクト参照の仕組みからして当然
801デフォルトの名無しさん (ワッチョイ d9bb-cCMV)
2019/11/24(日) 00:00:31.22ID:2ECmUh+O0 しかし、VBAをやり始めたら仕事がはかどるな
面倒くさい勤務表の処理もマクロで一発やからな
面倒くさい勤務表の処理もマクロで一発やからな
802デフォルトの名無しさん (ワッチョイ c1da-/L9V)
2019/11/24(日) 02:13:33.02ID:199iFod20 まるで働いているみたいな言い方だな
803デフォルトの名無しさん (アウアウウー Sa9d-5f43)
2019/11/24(日) 02:19:56.28ID:0nk530rxa VBAで劇的に工数削減できるような単価の低そうな仕事をしているのなら、
今の仕事の効率化なんかよりプログラミングに習熟してITエンジニアに転職したほうが金を稼げるのではないだろうか
今の仕事の効率化なんかよりプログラミングに習熟してITエンジニアに転職したほうが金を稼げるのではないだろうか
804デフォルトの名無しさん (ブーイモ MM8d-hgyP)
2019/11/24(日) 02:30:35.85ID:n7Fv0omHM805デフォルトの名無しさん (ワッチョイ 7990-/Q9f)
2019/11/24(日) 11:11:52.55ID:8CqNLf6R0 >>804
いかがでしたでしょうか?
いかがでしたでしょうか?
806デフォルトの名無しさん (ワッチョイ 7b68-QS5Z)
2019/11/24(日) 11:24:51.53ID:h0SmVkt10 >>803>>804
ここで回答するのもアレだが
VBAは基本的に常駐で保守のゴツイ仕事のみ。仕事自体が少なく稼げない。稼ぐなら別のプログラム言語の方が良い。
在宅の案件は更に無い。ゼロと思ったほうが良い(web業者がついでにAccessのVBAをメンテする、といった事例は聞いたことがある)
ここで回答するのもアレだが
VBAは基本的に常駐で保守のゴツイ仕事のみ。仕事自体が少なく稼げない。稼ぐなら別のプログラム言語の方が良い。
在宅の案件は更に無い。ゼロと思ったほうが良い(web業者がついでにAccessのVBAをメンテする、といった事例は聞いたことがある)
807デフォルトの名無しさん (アウアウエー Sae3-a3+U)
2019/11/24(日) 11:58:45.04ID:ZJnm9CLXa VBAはマクロ記録も出来るし、やりたいことをちょいググればいくらでもサンプルコード載ってるからね
808デフォルトの名無しさん (アークセー Sxc5-dWLu)
2019/11/24(日) 13:15:25.69ID:ok5C3nrlx Excel VBA限定の話だろそれ
Outlook とかWordとかPPTのVBAだと途端に情報集めの難易度が上がる
Access VBAは衰退傾向だし
Outlook とかWordとかPPTのVBAだと途端に情報集めの難易度が上がる
Access VBAは衰退傾向だし
809デフォルトの名無しさん (スッップ Sd33-Q8jM)
2019/11/24(日) 15:48:03.50ID:cfSGuIz8d810デフォルトの名無しさん (スッップ Sd33-Q8jM)
2019/11/24(日) 15:54:08.01ID:cfSGuIz8d811デフォルトの名無しさん (ワッチョイ 9994-1Uwe)
2019/11/24(日) 16:27:31.40ID:IpSlmYmZ0 検索力の問題
812デフォルトの名無しさん (スッップ Sd33-Q8jM)
2019/11/24(日) 17:31:24.17ID:cfSGuIz8d >>811
そんなレベルの低い話はしてないんだがw
そんなレベルの低い話はしてないんだがw
813デフォルトの名無しさん (ワッチョイ 1342-iHas)
2019/11/24(日) 17:34:20.62ID:JpcuIalq0 困ったらググれ
814デフォルトの名無しさん (スッップ Sd33-Q8jM)
2019/11/24(日) 18:56:22.86ID:cfSGuIz8d815デフォルトの名無しさん (ワッチョイ c1da-pyDD)
2019/11/24(日) 18:58:17.94ID:C3DnnDsf0 >>809
正常動作しなくなったのは7の時点だけど、その時はAeroを切ってどうにか切り抜けた。
しかし10はどうしたものかなと。
LWA_ALPHAの方は全く問題ないんだけど。
複数のPCで確認したから、おま環ではないと思う。
正常動作しなくなったのは7の時点だけど、その時はAeroを切ってどうにか切り抜けた。
しかし10はどうしたものかなと。
LWA_ALPHAの方は全く問題ないんだけど。
複数のPCで確認したから、おま環ではないと思う。
816デフォルトの名無しさん (ワッチョイ c1da-pyDD)
2019/11/24(日) 19:01:21.70ID:C3DnnDsf0817デフォルトの名無しさん (ワッチョイ 7b68-QS5Z)
2019/11/24(日) 20:13:58.03ID:h0SmVkt10 使えなくなったのか
大昔ハマって透明アプリばっかり作ってた記憶
大昔ハマって透明アプリばっかり作ってた記憶
818デフォルトの名無しさん (ワッチョイ c1da-pyDD)
2019/11/24(日) 21:06:06.38ID:C3DnnDsf0 >>817
使えないっていうか、変な動作をするんだよ。
ThisWorkbook.Application.Hwndでハンドル取ってるのに、
なぜか最初に配置したコマンドボタンのキャプションだけが透過するとか。
使えないっていうか、変な動作をするんだよ。
ThisWorkbook.Application.Hwndでハンドル取ってるのに、
なぜか最初に配置したコマンドボタンのキャプションだけが透過するとか。
819デフォルトの名無しさん (スッップ Sd33-Q8jM)
2019/11/24(日) 21:33:06.21ID:cfSGuIz8d820デフォルトの名無しさん (ワッチョイ 8901-hZ32)
2019/11/24(日) 21:55:17.62ID:HD00MhY50 ストリートインハゲラクター
821デフォルトの名無しさん (ワッチョイ 9159-jtw9)
2019/11/25(月) 01:13:03.20ID:eciN8Z7y0 透過するアプリがあったなあ昔、なんだっけ。
822デフォルトの名無しさん (ワッチョイ c1da-/L9V)
2019/11/25(月) 03:00:00.82ID:N/R5jHCP0 透明じゃ見えないよ
823デフォルトの名無しさん (スッップ Sd33-Q8jM)
2019/11/25(月) 08:39:02.81ID:dg2mzwJYd ググったらサンプルコードが見つかるんじゃなかったのか?
824デフォルトの名無しさん (スプッッ Sd73-MY8M)
2019/11/25(月) 11:42:30.29ID:R7yXiHMCd 初歩的な質問ですみません
標準モジュールとユーザーフォームでプログラムを書いています
1つのモジュール内にプロシージャが沢山あり、読みにくくなってしまいました
本を読むとクラスモジュールでプログラムが読みやすくなると書いてありました
どのような時にクラスモジュールを使ったらプログラムは読みやすく出来ますか?
サブルーチンやForNext,if等の繰り返し使うものはクラスモジュールを使った方がいいでしょうか?
標準モジュールとユーザーフォームでプログラムを書いています
1つのモジュール内にプロシージャが沢山あり、読みにくくなってしまいました
本を読むとクラスモジュールでプログラムが読みやすくなると書いてありました
どのような時にクラスモジュールを使ったらプログラムは読みやすく出来ますか?
サブルーチンやForNext,if等の繰り返し使うものはクラスモジュールを使った方がいいでしょうか?
825デフォルトの名無しさん (ワッチョイ 518e-6LQQ)
2019/11/25(月) 11:52:41.48ID:aBzrxBdk0 >>824
そんなことをここで聞くような人には無理
そんなことをここで聞くような人には無理
826デフォルトの名無しさん (スプッッ Sd73-MY8M)
2019/11/25(月) 14:15:33.91ID:R7yXiHMCd827デフォルトの名無しさん (スフッ Sd33-mWXg)
2019/11/25(月) 14:41:38.68ID:Md9nMpL2d ぶしつけで恐縮ですが、シート内の改行を一気に削除する方法を教えていただけないでしょうか。
cellsで指定してreplaceメソッドってやってもできないので、誰かよろしくお願い申し上げます。
cellsで指定してreplaceメソッドってやってもできないので、誰かよろしくお願い申し上げます。
828デフォルトの名無しさん (ワッチョイ c1da-/L9V)
2019/11/25(月) 15:12:03.96ID:N/R5jHCP0 新しいシート作って改行をl削除したデータをコピーすればいいんじゃないかな
829デフォルトの名無しさん (ワントンキン MMd3-Na0O)
2019/11/25(月) 15:16:08.90ID:FfR4EE1kM Dim R As Range
For Each R In ActiveSheet.UsedRange
R = Replace(R, vbCr, "")
R = Replace(R, vbLf, "")
Next
あるいは
Cells.Replace What:=vbCr, Replacement:=""
Cells.Replace What:=vbLf, Replacement:=""
For Each R In ActiveSheet.UsedRange
R = Replace(R, vbCr, "")
R = Replace(R, vbLf, "")
Next
あるいは
Cells.Replace What:=vbCr, Replacement:=""
Cells.Replace What:=vbLf, Replacement:=""
830デフォルトの名無しさん (アウアウカー Sa55-DMja)
2019/11/25(月) 15:30:30.80ID:Q3qCCewla831デフォルトの名無しさん (ワントンキン MMd3-Na0O)
2019/11/25(月) 15:42:49.49ID:FfR4EE1kM いちおう説明
excel内の改行コードはLFが基本らしいんだけど
マクロ使ったりでCRLFも入力出来るらしい
なのでCRとLFで分けて処理させてみた
excel内の改行コードはLFが基本らしいんだけど
マクロ使ったりでCRLFも入力出来るらしい
なのでCRとLFで分けて処理させてみた
832デフォルトの名無しさん (スッップ Sd33-Q8jM)
2019/11/25(月) 16:52:28.97ID:dg2mzwJYd 結局>>789はどうにもならんのか?
833デフォルトの名無しさん (アークセー Sxc5-dWLu)
2019/11/25(月) 17:03:29.94ID:Wzgj59oVx >>824
クラスモジュールというのはユーザーが独自にメソッドやプロパティ、イベントを定義して使えるオブジェクトのことで、本質的にはユーザーフォームと変わらない設計とコーディングに結構手間がかかる
オブジェクト化によるカプセル化がどうしても必要なら試してもいいが、肥大化したモジュールのコードの可読性改善くらいの目的であればやらない方がいいかもしれない
クラス内に定義された関数を呼び出すにも、そのクラスの型をもつ変数を宣言してインスタンスを生成してメソッドを呼び出なければならなくなるのでね
モジュールがごちゃごちゃして嫌なら、モジュールに記載している関数を機能カテゴリに分類して、各機能カテゴリごとモジュールを分ければいいんじゃないのかな
文字列操作系、メール送信機能系、メッセージダイアログ系、みたいな感じの切り分けで
クラスモジュールというのはユーザーが独自にメソッドやプロパティ、イベントを定義して使えるオブジェクトのことで、本質的にはユーザーフォームと変わらない設計とコーディングに結構手間がかかる
オブジェクト化によるカプセル化がどうしても必要なら試してもいいが、肥大化したモジュールのコードの可読性改善くらいの目的であればやらない方がいいかもしれない
クラス内に定義された関数を呼び出すにも、そのクラスの型をもつ変数を宣言してインスタンスを生成してメソッドを呼び出なければならなくなるのでね
モジュールがごちゃごちゃして嫌なら、モジュールに記載している関数を機能カテゴリに分類して、各機能カテゴリごとモジュールを分ければいいんじゃないのかな
文字列操作系、メール送信機能系、メッセージダイアログ系、みたいな感じの切り分けで
834デフォルトの名無しさん (ワッチョイ 7145-MY8M)
2019/11/25(月) 18:09:55.21ID:H9kNla+G0 >>833
ありがとうございます
おっしゃる通りで今問題なく動くプログラムをわざわざ変える必要は無いですね
まずはモジュールを分けるところから始めてみます
今後プログラムを作る際の参考にさせていただきます
ありがとうございます
おっしゃる通りで今問題なく動くプログラムをわざわざ変える必要は無いですね
まずはモジュールを分けるところから始めてみます
今後プログラムを作る際の参考にさせていただきます
835デフォルトの名無しさん (ワッチョイ 8901-hZ32)
2019/11/25(月) 19:07:37.29ID:6cilP10x0 グラサンのハゲはここにこないの?
836デフォルトの名無しさん (ワッチョイ 7bf7-r64g)
2019/11/25(月) 19:23:35.97ID:9hpYEcN60 シートやセルと変数の定義が重複するようなときに一カ所まとめられて便利
837デフォルトの名無しさん (ワッチョイ 134f-/upO)
2019/11/26(火) 07:21:06.34ID:V8F4+JUa0838デフォルトの名無しさん (ドコグロ MM63-hZ32)
2019/11/26(火) 08:19:11.49ID:6EvauiRdM839デフォルトの名無しさん (アウアウウー Sa9d-rqK9)
2019/11/26(火) 18:13:05.92ID:lZztYBKEa お前らの部屋もガーベージだらけ
840デフォルトの名無しさん (ワントンキン MMd3-Na0O)
2019/11/26(火) 19:01:16.26ID:cGr33es4M ちゃんとコレクションしてるわ
841デフォルトの名無しさん (ワッチョイ 7b02-Ghh+)
2019/11/26(火) 19:11:03.72ID:s8aO6zrT0 ほこり被ってるけどな
842デフォルトの名無しさん (アークセー Sxc5-dWLu)
2019/11/26(火) 20:19:14.53ID:sWZAZ3HSx843デフォルトの名無しさん (ワッチョイ 8139-QS5Z)
2019/11/26(火) 20:33:43.32ID:+5U3MHb30 A列の値が「ア行」、B列の値が「あいうえお」のうちどれかであればC列を赤く塗り、
同じく「カ行」で「かきくけこ」のうちどれかであれば青く塗る、というような処理をしたくて
以下のようにしたところ一応うまくいったのですが、
「ア行 and あ」or「ア行 and い」or ……
というような複数条件の書き方はこれであっているのでしょうか?
If InStr(Range("A2").Value, "ア行") > 0 And InStr(Range("B2").Value, "あ") > 0
Or InStr(Range("B2").Value, "い") > 0 Or InStr(Range("B2").Value, "う") > 0
Or InStr(Range("B2").Value, "え") > 0 Or InStr(Range("B2").Value, "お") > 0 Then
Range("C2").Interior.Color = RGB(255, 0, 0)
ElseIf InStr(Range("A2").Value, "カ行") > 0 And InStr(Range("B2").Value, "か") > 0
Or InStr(Range("B2").Value, "き") > 0 Or InStr(Range("B2").Value, "く") > 0
Or InStr(Range("B2").Value, "け") > 0 Or InStr(Range("B2").Value, "こ") > 0 Then
Range("C2").Interior.Color = RGB(0, 0, 255)
同じく「カ行」で「かきくけこ」のうちどれかであれば青く塗る、というような処理をしたくて
以下のようにしたところ一応うまくいったのですが、
「ア行 and あ」or「ア行 and い」or ……
というような複数条件の書き方はこれであっているのでしょうか?
If InStr(Range("A2").Value, "ア行") > 0 And InStr(Range("B2").Value, "あ") > 0
Or InStr(Range("B2").Value, "い") > 0 Or InStr(Range("B2").Value, "う") > 0
Or InStr(Range("B2").Value, "え") > 0 Or InStr(Range("B2").Value, "お") > 0 Then
Range("C2").Interior.Color = RGB(255, 0, 0)
ElseIf InStr(Range("A2").Value, "カ行") > 0 And InStr(Range("B2").Value, "か") > 0
Or InStr(Range("B2").Value, "き") > 0 Or InStr(Range("B2").Value, "く") > 0
Or InStr(Range("B2").Value, "け") > 0 Or InStr(Range("B2").Value, "こ") > 0 Then
Range("C2").Interior.Color = RGB(0, 0, 255)
844デフォルトの名無しさん (ワッチョイ 8901-hZ32)
2019/11/26(火) 20:46:08.04ID:eRvpjELG0 グラサンのハゲはここにこないのー?
845デフォルトの名無しさん (ワッチョイ 7bf7-r64g)
2019/11/26(火) 21:20:11.71ID:nfr+llLM0846デフォルトの名無しさん (ドコグロ MM63-hZ32)
2019/11/26(火) 21:29:30.19ID:6EvauiRdM >>843
> 「ア行 and あ」or「ア行 and い」or ……
> というような複数条件の書き方はこれであっているのでしょうか?
ダメ
AndよりOrの方が優先順位が低いので
InStr(Range("A2").Value, "ア行") > 0
And InStr(Range("B2").Value, "あ") > 0
Or InStr(Range("B2").Value, "い") > 0
Or InStr(Range("B2").Value, "う") > 0
Or InStr(Range("B2").Value, "え") > 0
Or InStr(Range("B2").Value, "お") > 0
は
(InStr(Range("A2").Value, "ア行") > 0 And InStr(Range("B2").Value, "あ") > 0)
Or InStr(Range("B2").Value, "い") > 0
Or InStr(Range("B2").Value, "う") > 0
Or InStr(Range("B2").Value, "え") > 0
Or InStr(Range("B2").Value, "お") > 0
のように解釈される
なのでA2が "ア行" でなくてもB2が "い" だと成立しちゃう
詳しくは
https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/operator-precedence
を見て
> 「ア行 and あ」or「ア行 and い」or ……
> というような複数条件の書き方はこれであっているのでしょうか?
ダメ
AndよりOrの方が優先順位が低いので
InStr(Range("A2").Value, "ア行") > 0
And InStr(Range("B2").Value, "あ") > 0
Or InStr(Range("B2").Value, "い") > 0
Or InStr(Range("B2").Value, "う") > 0
Or InStr(Range("B2").Value, "え") > 0
Or InStr(Range("B2").Value, "お") > 0
は
(InStr(Range("A2").Value, "ア行") > 0 And InStr(Range("B2").Value, "あ") > 0)
Or InStr(Range("B2").Value, "い") > 0
Or InStr(Range("B2").Value, "う") > 0
Or InStr(Range("B2").Value, "え") > 0
Or InStr(Range("B2").Value, "お") > 0
のように解釈される
なのでA2が "ア行" でなくてもB2が "い" だと成立しちゃう
詳しくは
https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/operator-precedence
を見て
847デフォルトの名無しさん (ドコグロ MM63-hZ32)
2019/11/26(火) 21:38:29.33ID:6EvauiRdM >>843
そもそも
> A列の値が「ア行」
と言うなら
Range("A2").Value = "ア行"
と書けばいい
InStr(Range("A2").Value, "ア行") > 0
だとA2が "マレーシア行きのバスはここから出ます" でも成立しちゃうけどそれはいいのか?
そもそも
> A列の値が「ア行」
と言うなら
Range("A2").Value = "ア行"
と書けばいい
InStr(Range("A2").Value, "ア行") > 0
だとA2が "マレーシア行きのバスはここから出ます" でも成立しちゃうけどそれはいいのか?
848デフォルトの名無しさん (ワッチョイ 8139-QS5Z)
2019/11/26(火) 21:41:08.57ID:+5U3MHb30 あらそうだったんですね。ということは
InStr(Range("A2").Value, "ア行") > 0
And (InStr(Range("B2").Value, "あ") > 0 Or InStr(Range("B2").Value, "お") > 0) Then
という感じにすればいいんでしょうか?
InStr(Range("A2").Value, "ア行") > 0
And (InStr(Range("B2").Value, "あ") > 0 Or InStr(Range("B2").Value, "お") > 0) Then
という感じにすればいいんでしょうか?
849デフォルトの名無しさん (ワッチョイ 7bf7-r64g)
2019/11/26(火) 21:43:24.14ID:nfr+llLM0 >>845の左順って間違いだったは
変更はそれでOK
変更はそれでOK
850デフォルトの名無しさん (ワッチョイ 8139-QS5Z)
2019/11/26(火) 21:46:05.70ID:+5U3MHb30 ああなるほど。文言は固定でかぶってる言葉がなかったので大丈夫だったんだと思います
すでにあった文言の組み合わせの違うVBAをいじったもんですからそれを大枠はそれをそのまま
使ったんですけどそう言われればそうですね
すでにあった文言の組み合わせの違うVBAをいじったもんですからそれを大枠はそれをそのまま
使ったんですけどそう言われればそうですね
851デフォルトの名無しさん (ワッチョイ 8139-QS5Z)
2019/11/26(火) 21:50:37.69ID:+5U3MHb30 If Range("A2").Value = "ア行"
And (InStr(Range("B2").Value, "あ") > 0 Or InStr(Range("B2").Value, "お") > 0) Then
Elseif Range("A2").Value = "カ行"
And (InStr(Range("B2").Value, "か") > 0 Or InStr(Range("B2").Value, "こ") > 0) Then
こうでしょうか?
And (InStr(Range("B2").Value, "あ") > 0 Or InStr(Range("B2").Value, "お") > 0) Then
Elseif Range("A2").Value = "カ行"
And (InStr(Range("B2").Value, "か") > 0 Or InStr(Range("B2").Value, "こ") > 0) Then
こうでしょうか?
852デフォルトの名無しさん (ワッチョイ 134b-Na0O)
2019/11/26(火) 21:55:48.15ID:dLRQEMpj0 もいちょい頑張って正規表現使ったらいいんじゃないでしょうか
853デフォルトの名無しさん (ワッチョイ 8139-QS5Z)
2019/11/26(火) 22:05:12.70ID:+5U3MHb30 正規表現だと
If Range("A2").Value = "ア行"
And (Range("B2").Value Like "[あ, い, う, え, お]" Then
これであってますか?
If Range("A2").Value = "ア行"
And (Range("B2").Value Like "[あ, い, う, え, お]" Then
これであってますか?
854デフォルトの名無しさん (ワッチョイ 7bf7-r64g)
2019/11/26(火) 22:24:52.56ID:nfr+llLM0855デフォルトの名無しさん (ワッチョイ 7b68-QS5Z)
2019/11/26(火) 22:25:20.59ID:upmpwVtz0 正規表現はRegExp使う奴だよ
856デフォルトの名無しさん (ワッチョイ 8139-QS5Z)
2019/11/26(火) 22:34:52.14ID:+5U3MHb30 簡略化するためにあいうえおを使いましたが、実際は2〜10文字程度の文字列なので、
And (Range("B2").Value Like "東京|大阪|名古屋" Then
こうすればいいのかな?
And (Range("B2").Value Like "東京|大阪|名古屋" Then
こうすればいいのかな?
857デフォルトの名無しさん (ワッチョイ 7bf7-r64g)
2019/11/26(火) 22:41:27.30ID:nfr+llLM0 >>856
| はRegExp使わないとムリだね
| はRegExp使わないとムリだね
858デフォルトの名無しさん (ワッチョイ 8139-QS5Z)
2019/11/26(火) 22:46:43.63ID:+5U3MHb30 確かにただ | を使っただけでは反応しませんね
とりあえずOrいっぱい使って直します、ありがとうございました
とりあえずOrいっぱい使って直します、ありがとうございました
859デフォルトの名無しさん (アークセー Sxc5-dWLu)
2019/11/26(火) 22:50:11.95ID:DKfMBfAux TestメソッドがTrueを返してきたら処理するって形にすればいい
860デフォルトの名無しさん (ワッチョイ 117c-+Oop)
2019/11/26(火) 22:55:07.89ID:DNirBk9p0 >>856
いちいち聞く前に試した方が早いよ
いちいち聞く前に試した方が早いよ
861デフォルトの名無しさん (アウアウウー Sa9d-oGMk)
2019/11/27(水) 06:59:40.83ID:HXLhDNyDa 質問スレなんだから構わないだろ
気に入らないなら無視しとけアホ
気に入らないなら無視しとけアホ
862デフォルトの名無しさん (アウアウクー MM45-PQyj)
2019/11/27(水) 15:37:51.09ID:YOYInDtKM 他人が作ったマクロなんて読みづらいに決まってんじゃん…
今更グダグダ言ってもあとの祭りさ。
今更グダグダ言ってもあとの祭りさ。
863デフォルトの名無しさん (ワッチョイ 530e-iHas)
2019/11/27(水) 15:57:59.39ID:75s4sS5d0 自分が作ったマクロもだぞ
数年前どころか一ヶ月もするとわからなくて四苦八苦することがある
数年前どころか一ヶ月もするとわからなくて四苦八苦することがある
864デフォルトの名無しさん (ワッチョイ 7b02-Ghh+)
2019/11/27(水) 16:57:52.22ID:aKqeYuzt0 過去のソースは別人が書いたと思って
865デフォルトの名無しさん (アウアウエー Sae3-X/je)
2019/11/27(水) 18:34:34.70ID:Cbbx0Ne3a コードよりメモの方が長い
866デフォルトの名無しさん (ドコグロ MM63-hZ32)
2019/11/27(水) 19:32:47.73ID:/ZvfNNOFM 1週間後の自分は既に他人
867デフォルトの名無しさん (ワッチョイ 81ce-/L9V)
2019/11/27(水) 19:44:22.70ID:zplzdTf80 プログラミングの実習で教授が言ってたわ
明日の自分は他人だから、いつでも他人が見てもわかるように書けって
明日の自分は他人だから、いつでも他人が見てもわかるように書けって
868デフォルトの名無しさん (アウアウウー Sa9d-rqK9)
2019/11/27(水) 19:53:39.35ID:stsrz9x1a 昨日のことも覚えてない
>>868
昨日の昼飯がなにか?なんて思い出せなくなりました…
昨日の昼飯がなにか?なんて思い出せなくなりました…
870デフォルトの名無しさん (ワッチョイ 69f1-hgyP)
2019/11/27(水) 20:35:10.07ID:fWLksagp0 >>870
ビタミン剤をしこたま飲んでるんですけど、やっぱりだめですかね…
ビタミン剤をしこたま飲んでるんですけど、やっぱりだめですかね…
872デフォルトの名無しさん (ワッチョイ 1301-7uad)
2019/11/27(水) 20:47:12.82ID:Bgz7f5eR0 >>867
集中してるとそこまで対処してるか!みたいなのが書ける時があって
後から見てなんでこんなのあるんだ?って思うことがある
同じことやろうと思っても出来なかったり
だから自分に対してのコメント必須だわ
集中してるとそこまで対処してるか!みたいなのが書ける時があって
後から見てなんでこんなのあるんだ?って思うことがある
同じことやろうと思っても出来なかったり
だから自分に対してのコメント必須だわ
873デフォルトの名無しさん (ワッチョイ 69d0-BEIG)
2019/11/27(水) 21:24:50.75ID:RNITUjXe0 昨日の自分は今日の敵
今日の自分は明日の(自分にとっての)敵
今日の自分は明日の(自分にとっての)敵
874デフォルトの名無しさん (ワッチョイ c1da-pyDD)
2019/11/27(水) 21:25:04.01ID:Htaq5k6U0875デフォルトの名無しさん (ワッチョイ b1f1-uW/g)
2019/11/28(木) 00:11:11.99ID:SmApZ4N10 VBAでChromeのタブブラウザを思い通りに操作することってできます?
IEのタブブラウザも思い通りに操作する方法も知りたいけど。
IEのタブブラウザも思い通りに操作する方法も知りたいけど。
876デフォルトの名無しさん (ワッチョイ 9279-luhV)
2019/11/28(木) 01:30:16.44ID:65DPFBPU0 Seleniumでもタブ操作は無理だから無理なんじゃねーの
877デフォルトの名無しさん (ワッチョイ 922c-Ql8R)
2019/11/28(木) 01:58:43.77ID:WsOSEkue0 Ruby で、Selenium Webdriver を使っているけど、タブ移動は出来る!
url_0 = "URL 0"
url_1 = "URL 1"
driver.navigate.to url_0 # url_0 を開く
driver.execute_script( "window.open()" ) # 新しいタブを開く
driver.switch_to.window( driver.window_handles.last ) # 新しいタブへ移動する
driver.navigate.to url_1 # url_1 を開く
all_handles = driver.window_handles # すべてのタブ
driver.switch_to.window( all_handles[ 0 ] ) # url_0 へ移動する
url_0 = "URL 0"
url_1 = "URL 1"
driver.navigate.to url_0 # url_0 を開く
driver.execute_script( "window.open()" ) # 新しいタブを開く
driver.switch_to.window( driver.window_handles.last ) # 新しいタブへ移動する
driver.navigate.to url_1 # url_1 を開く
all_handles = driver.window_handles # すべてのタブ
driver.switch_to.window( all_handles[ 0 ] ) # url_0 へ移動する
878877 (ワッチョイ 922c-Ql8R)
2019/11/28(木) 02:00:57.37ID:WsOSEkue0 driver.execute_script( "window.open()" ) # 新しいタブを開く
driver.execute_script で、JavaScript のソースコードを書ける
driver.execute_script で、JavaScript のソースコードを書ける
879デフォルトの名無しさん (スッップ Sdb2-iiDQ)
2019/11/29(金) 13:28:48.35ID:o1brOXQcd >>874
以前の挙動ってセル罫線は見えるけどセル自体は透過して、下への入力が出来るというものだった記憶があるんだけど、そういう動作を望んでるってことだよね。
単純にセル範囲全体、もしくは部分を完全透過するって意味じゃ無いよね。
セル範囲、もしくは部分を完全透過して下へ入力出来るっていうのなら簡単に実現出来ると思う。
試して無いけど。
以前の挙動ってセル罫線は見えるけどセル自体は透過して、下への入力が出来るというものだった記憶があるんだけど、そういう動作を望んでるってことだよね。
単純にセル範囲全体、もしくは部分を完全透過するって意味じゃ無いよね。
セル範囲、もしくは部分を完全透過して下へ入力出来るっていうのなら簡単に実現出来ると思う。
試して無いけど。
880デフォルトの名無しさん (ワッチョイ adda-WKXI)
2019/11/29(金) 19:37:43.44ID:Y7Z9cnLQ0881デフォルトの名無しさん (スッップ Sdb2-iiDQ)
2019/11/29(金) 21:00:27.22ID:o1brOXQcd >>880
SetLayeredWindowAttributesは多分無理だと思う。
使ったことないけどUpdateLayeredWindowも同じかな?
この種のAPIは諦めて、リージョン使ってウィンドウの形状をくり抜いた形に変形する方法を使って出来たけど、色指定とかも出来ないし、くり抜いた部分は問答無用で透過する。
当然、罫線も透過する。
それからブックのウィンドウを移動すると元に戻る。
こっちはサブクラスでどうにか出来なかったかな。
くり抜く部分は右端列、下端行の見切れる所を正確に取得するのが面倒くさい。
指定セル範囲なら簡単なんだけど。
SetLayeredWindowAttributesは多分無理だと思う。
使ったことないけどUpdateLayeredWindowも同じかな?
この種のAPIは諦めて、リージョン使ってウィンドウの形状をくり抜いた形に変形する方法を使って出来たけど、色指定とかも出来ないし、くり抜いた部分は問答無用で透過する。
当然、罫線も透過する。
それからブックのウィンドウを移動すると元に戻る。
こっちはサブクラスでどうにか出来なかったかな。
くり抜く部分は右端列、下端行の見切れる所を正確に取得するのが面倒くさい。
指定セル範囲なら簡単なんだけど。
882デフォルトの名無しさん (スッップ Sdb2-iiDQ)
2019/11/29(金) 21:05:43.61ID:o1brOXQcd 元々、無理矢理やろうとしてたのは半透明にしてその描画をメモリに取得してから完全透明にして、デスクトップに取得した描画を書き込むことを考えたけど、再描画で無茶苦茶チラつきそうで断念した。
883デフォルトの名無しさん (ワッチョイ 8101-MhVQ)
2019/11/29(金) 21:42:27.36ID:fEFTOoHB0 北海道のハゲはここにこないのー?
884デフォルトの名無しさん (スッップ Sdb2-iiDQ)
2019/11/29(金) 23:10:37.96ID:o1brOXQcd ググレばサンプルや答えが見つかるとか言ってた奴がいたけど、ググってどうにかなるようなレベルの低いものは、問題にすらならないわけでね。
わざわざ覚えるようなことをしてないだけでググレば答えが見つかるのが分かってるんだよ。
一方、問題になるようなレベルの高いものはググっても答えが見つかることは殆ど無いわけだ。
わざわざ覚えるようなことをしてないだけでググレば答えが見つかるのが分かってるんだよ。
一方、問題になるようなレベルの高いものはググっても答えが見つかることは殆ど無いわけだ。
885デフォルトの名無しさん (ワッチョイ 655f-abYQ)
2019/11/30(土) 16:10:24.85ID:gvdsBQuZ0 最近独学ではじめたんだがググっても出ないから質問させてくれ
if の条件式をセルから読み取ることできない?
例えば
セルA1に1+1=2って入力してあって
VBAで
if cells(1,1).value then
end if
的なことを実行したいんだが・・・
if の条件式をセルから読み取ることできない?
例えば
セルA1に1+1=2って入力してあって
VBAで
if cells(1,1).value then
end if
的なことを実行したいんだが・・・
886デフォルトの名無しさん (ワッチョイ adda-WKXI)
2019/11/30(土) 16:18:47.86ID:zymER4tP0 イミワカラン。
=1+1=2ならまだわかるが。
=1+1=2ならまだわかるが。
887デフォルトの名無しさん (ワッチョイ b1f1-uW/g)
2019/11/30(土) 16:26:59.80ID:PE5ncLuo0 セルA2には1+1=3って入力してあるんです
888デフォルトの名無しさん (ブーイモ MMa6-xiND)
2019/11/30(土) 16:42:55.04ID:CChXYwU6M if Application.Evaluate(cells(1,1).value) then
end if
は?
end if
は?
889デフォルトの名無しさん (ワッチョイ 655f-abYQ)
2019/11/30(土) 17:14:03.21ID:gvdsBQuZ0890デフォルトの名無しさん (ワッチョイ 0dce-3RYV)
2019/11/30(土) 18:09:08.07ID:5XJ0vNla0891デフォルトの名無しさん (ワッチョイ b57c-EcXK)
2019/11/30(土) 18:17:54.58ID:c6PsAIQc0 >>885
そのコードで読み取れるが、=1+1=2と入れてるなら常にTrueにしかならないと思うぞ
そのコードで読み取れるが、=1+1=2と入れてるなら常にTrueにしかならないと思うぞ
892デフォルトの名無しさん (ワッチョイ f602-FWG3)
2019/11/30(土) 18:52:44.66ID:Vhhj6JxE0 コードで条件指定するんじゃなくて
セルに条件書いてそれで判定したいって事だよね
セルに条件書いてそれで判定したいって事だよね
893デフォルトの名無しさん (ワッチョイ 655f-abYQ)
2019/11/30(土) 18:58:56.97ID:gvdsBQuZ0894デフォルトの名無しさん (スプッッ Sd12-abYQ)
2019/11/30(土) 19:00:48.42ID:vHVqnqrEd 文字列(1+2)*3を計算して数値にしてくれる方法ないかね
895デフォルトの名無しさん (ワッチョイ b57c-EcXK)
2019/11/30(土) 19:15:08.08ID:c6PsAIQc0 >>894
試してないけどevaluateで出来るんじゃないか?
試してないけどevaluateで出来るんじゃないか?
896デフォルトの名無しさん (ワッチョイ 0dce-3RYV)
2019/11/30(土) 19:34:42.91ID:5XJ0vNla0 セルに数式として入れる
897デフォルトの名無しさん (エムゾネ FFb2-b5WD)
2019/11/30(土) 21:28:15.08ID:lXL2/s51F Cells(1,1).Textでは数式読み取れなかったっけ
898デフォルトの名無しさん (ワッチョイ adda-3RYV)
2019/11/30(土) 21:30:46.92ID:4jVQowz00 >>894
そのくらい暗算すればいいじゃん
そのくらい暗算すればいいじゃん
899デフォルトの名無しさん (ワッチョイ b57c-EcXK)
2019/11/30(土) 21:37:32.50ID:c6PsAIQc0 >>897
表示されてるものを表示形式通りに取得するやつ
表示されてるものを表示形式通りに取得するやつ
900デフォルトの名無しさん (ワッチョイ adda-3RYV)
2019/11/30(土) 21:54:44.62ID:4jVQowz00 Range("A1").Formula = "=(1+2)*3"
901デフォルトの名無しさん (ワッチョイ 0920-tQqL)
2019/12/01(日) 01:14:32.95ID:hVa/XxLC0 転記マクロを作っていて、AのブックからBのブックに転記をしようと考えているのですが
Aの転記する部分を一旦構造体に全部取り込んでしまってからBブックを開いて転記する方法と
AとBのブックをその都度比較して転記するかで悩んでいます
どっちの方がいいんでしょうか?
Aの転記する部分を一旦構造体に全部取り込んでしまってからBブックを開いて転記する方法と
AとBのブックをその都度比較して転記するかで悩んでいます
どっちの方がいいんでしょうか?
902デフォルトの名無しさん (ブーイモ MMd5-EEfp)
2019/12/01(日) 01:25:45.07ID:xsf905SiM 前者でいいよ。
903デフォルトの名無しさん (ワッチョイ a901-SL5O)
2019/12/01(日) 01:32:52.78ID:Mv7XM2680 オブジェ.pastespecial(xlpaste〇〇)
オブジェ.pastespecial paste := xlpaste〇〇
これ何が違うの?
前者は戻り値はカッコをつけるっていうルールに従ってなくね?
オブジェ.pastespecial paste := xlpaste〇〇
これ何が違うの?
前者は戻り値はカッコをつけるっていうルールに従ってなくね?
904デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/01(日) 06:15:52.01ID:qadFHjVDx >>903
前者はメソッドが返す戻り値を取得するために関数としてメソッドを使用している
文法上、引数指定の箇所で括弧が必要
後者はメソッドをコールしてそのまま次の処理に制御を渡している
引数指定の箇所には文法上括弧が不要
前者はメソッドが返す戻り値を取得するために関数としてメソッドを使用している
文法上、引数指定の箇所で括弧が必要
後者はメソッドをコールしてそのまま次の処理に制御を渡している
引数指定の箇所には文法上括弧が不要
905デフォルトの名無しさん (ワッチョイ a901-SL5O)
2019/12/01(日) 06:39:57.40ID:Mv7XM2680906デフォルトの名無しさん (ワッチョイ a901-SL5O)
2019/12/01(日) 06:49:15.69ID:Mv7XM2680 pastespecial xlpaste〇〇
これでも行けた…
pastespecialメゾットの戻り値ってなんだ?
x = オブジェ.pastespecial(xlpaste〇〇)
こんなの使うときあるの?
pastespecialの戻り値を使う意味が全くわからない
If MsgBox("実行しますか?", vbYesNo) = vbNo Then
これは戻り値がTRUEかfalseだから意味がわかるけど
これでも行けた…
pastespecialメゾットの戻り値ってなんだ?
x = オブジェ.pastespecial(xlpaste〇〇)
こんなの使うときあるの?
pastespecialの戻り値を使う意味が全くわからない
If MsgBox("実行しますか?", vbYesNo) = vbNo Then
これは戻り値がTRUEかfalseだから意味がわかるけど
907デフォルトの名無しさん (ワッチョイ f668-3RYV)
2019/12/01(日) 07:55:36.72ID:lg6qJlYj0 >>903
オブジェ→オブジェクト
Selection.PasteSpecial Paste:=xlPasteValues
Selection.PasteSpecial(xlPasteValues)
そういう文法。
前者のメリットは指定できる引数が大量にある時、一つだけ記述することができる上に見やすい
ただ、「:=」のコロンを見落としやすいのがネック
引数が一つだけの時は前者で書く理由はないと思う
>>905
メゾット→メソッド
メソッド=クラス内関数
ただ、vbaなんて全部applicationクラス(と思う)から、関数は全てメソッドに当たりそう
pastespecialはメソッドで間違いない
>>906
>こんなの使うときあるの?
>pastespecialの戻り値を使う意味が全くわからない
そもそも使わないから返り値なんてなんでも良い
俺も使った事無いけど、あえて返すとすればペーストの失敗か成功なのは間違いないだろう
オブジェ→オブジェクト
Selection.PasteSpecial Paste:=xlPasteValues
Selection.PasteSpecial(xlPasteValues)
そういう文法。
前者のメリットは指定できる引数が大量にある時、一つだけ記述することができる上に見やすい
ただ、「:=」のコロンを見落としやすいのがネック
引数が一つだけの時は前者で書く理由はないと思う
>>905
メゾット→メソッド
メソッド=クラス内関数
ただ、vbaなんて全部applicationクラス(と思う)から、関数は全てメソッドに当たりそう
pastespecialはメソッドで間違いない
>>906
>こんなの使うときあるの?
>pastespecialの戻り値を使う意味が全くわからない
そもそも使わないから返り値なんてなんでも良い
俺も使った事無いけど、あえて返すとすればペーストの失敗か成功なのは間違いないだろう
908デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/01(日) 08:06:02.34ID:qadFHjVDx >>905
メゾットではなくメソッド(Method)ね
PasteSpecialはメソッドだよ
関数の定義は曖昧だが、ここでは制御と戻り値を返す命令文の意味で使っている
一方メソッドはオブジェクト外からアクセス可能になるようメンバとして実装された機能プログラムのことを指す
戻り値を返すものと返さないものの両方がある
メゾットではなくメソッド(Method)ね
PasteSpecialはメソッドだよ
関数の定義は曖昧だが、ここでは制御と戻り値を返す命令文の意味で使っている
一方メソッドはオブジェクト外からアクセス可能になるようメンバとして実装された機能プログラムのことを指す
戻り値を返すものと返さないものの両方がある
909デフォルトの名無しさん (ワッチョイ a901-SL5O)
2019/12/01(日) 08:12:27.61ID:Mv7XM2680910デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/01(日) 08:14:33.55ID:qadFHjVDx >>907
細かい話だが、VB6共通の標準関数やステートメント類、列挙定数はApplicationクラス配下のメンバではないはず
あと調べていけばApplicationクラスから独立しているクラスもあるかもしれない
プログラム本体をコードする言語ではなくマクロ言語なのでApplicationというカレントなインスタンスに依存しないクラスがあってもおかしくない
細かい話だが、VB6共通の標準関数やステートメント類、列挙定数はApplicationクラス配下のメンバではないはず
あと調べていけばApplicationクラスから独立しているクラスもあるかもしれない
プログラム本体をコードする言語ではなくマクロ言語なのでApplicationというカレントなインスタンスに依存しないクラスがあってもおかしくない
911デフォルトの名無しさん (ワッチョイ a901-SL5O)
2019/12/01(日) 08:17:59.92ID:Mv7XM2680 初心者にメンバとかクラス外とか言われてもわからん
912デフォルトの名無しさん (ワッチョイ 122f-Ql8R)
2019/12/01(日) 08:25:10.96ID:BdsW8ng60913デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/01(日) 08:25:19.80ID:qadFHjVDx914デフォルトの名無しさん (ワッチョイ adda-WKXI)
2019/12/01(日) 08:33:22.24ID:IUtc26dY0 PasteSpecialの戻り値が何なのか知らないけど、
範囲だったら使い道があるんじゃないの。
貼り付けた後に、そのまま書式を変更するとかさ。
範囲だったら使い道があるんじゃないの。
貼り付けた後に、そのまま書式を変更するとかさ。
915デフォルトの名無しさん (ワッチョイ a901-SL5O)
2019/12/01(日) 08:37:40.53ID:Mv7XM2680 >>913
メンバとオブジェクトの違いって何?
メンバとオブジェクトの違いって何?
916デフォルトの名無しさん (ワッチョイ 122f-Ql8R)
2019/12/01(日) 08:37:49.15ID:BdsW8ng60917デフォルトの名無しさん (ワッチョイ a901-SL5O)
2019/12/01(日) 08:39:31.79ID:Mv7XM2680 >>916
なんでカッコがいるんだ…
end direction :=xlupじゃダメなのか…
こういうのって気にする人いる?
エラー出たらかっこつけるとかメソット、プロパティの引数指定にはとりあえずかっこつけるとかしてる?
なんでカッコがいるんだ…
end direction :=xlupじゃダメなのか…
こういうのって気にする人いる?
エラー出たらかっこつけるとかメソット、プロパティの引数指定にはとりあえずかっこつけるとかしてる?
918デフォルトの名無しさん (ワッチョイ f668-3RYV)
2019/12/01(日) 08:48:55.22ID:lg6qJlYj0919デフォルトの名無しさん (ワッチョイ adda-WKXI)
2019/12/01(日) 08:53:45.63ID:IUtc26dY0 実際、クラスを自作すると、プロパティとメソッドを同じように使うことも出来るから、
どっちでやりゃあいいんだ? ってなるときはある。
どっちでやりゃあいいんだ? ってなるときはある。
920デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/01(日) 08:57:20.31ID:qadFHjVDx >>917
自分で調べるといいよ
自分で調べるといいよ
921デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/01(日) 09:02:35.06ID:qadFHjVDx VBAのプロパティのアクセサやセッターも実体はただのプロジージャだからね
クラス外から見たらただの関数でしかない
クラス外から見たらただの関数でしかない
922デフォルトの名無しさん (ワッチョイ f668-3RYV)
2019/12/01(日) 09:04:09.45ID:lg6qJlYj0923デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/01(日) 09:04:20.04ID:qadFHjVDx >>915
RangeオブジェクトとPasteSpecialメソッドの違いを考えたらわかる
RangeオブジェクトとPasteSpecialメソッドの違いを考えたらわかる
924デフォルトの名無しさん (ワッチョイ a901-SL5O)
2019/12/01(日) 09:04:29.40ID:Mv7XM2680 なんかイマイチな答えしかこないな
俺は、プロパティ、メソッドで()がつく場合とつかない場合の違いは何?
全部()つけるでいいの?どう意識してるの?ってきいてる
これに対してクラスガーとか言われてもわからん
俺は、プロパティ、メソッドで()がつく場合とつかない場合の違いは何?
全部()つけるでいいの?どう意識してるの?ってきいてる
これに対してクラスガーとか言われてもわからん
925デフォルトの名無しさん (ワッチョイ 122f-Ql8R)
2019/12/01(日) 09:04:33.88ID:BdsW8ng60 >>917
プロパティの引数の括弧は省略できなかったと思う
メソッド(関数)呼び出しで、戻り値を使わない場合は括弧がなくてもいい
この辺は、大昔の文法との見た目を合わせるための仕様
慣れれば自然と使い分けれるようになるから頑張れ
プロパティの引数の括弧は省略できなかったと思う
メソッド(関数)呼び出しで、戻り値を使わない場合は括弧がなくてもいい
この辺は、大昔の文法との見た目を合わせるための仕様
慣れれば自然と使い分けれるようになるから頑張れ
926デフォルトの名無しさん (ワッチョイ a901-SL5O)
2019/12/01(日) 09:05:35.25ID:Mv7XM2680927デフォルトの名無しさん (ワッチョイ 8101-MhVQ)
2019/12/01(日) 09:05:40.19ID:J+qwPBxd0 北海道のハゲはここにこないのー?
928デフォルトの名無しさん (ワッチョイ 122f-Ql8R)
2019/12/01(日) 09:07:25.33ID:BdsW8ng60929デフォルトの名無しさん (ワッチョイ a901-SL5O)
2019/12/01(日) 09:09:06.82ID:Mv7XM2680 >>928
君はどうしてるの?
君はどうしてるの?
930デフォルトの名無しさん (ワッチョイ 122f-Ql8R)
2019/12/01(日) 09:20:24.90ID:BdsW8ng60931デフォルトの名無しさん (ワッチョイ a901-SL5O)
2019/12/01(日) 09:27:30.25ID:Mv7XM2680932デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/01(日) 09:30:09.60ID:qadFHjVDx >>926
全然違う
RangeクラスとRangeプロパティを混同してはいけない
Range("A1")の式はWorksheetクラスのメンバのRangeプロパティを引数つきで呼び出している
このプロパティ式で参照を取得しているのが、Excelのオブジェクトモデルで定義されたRangeクラスの実体(インスタンス)、つまりA1セルになる
要するに、Range("A1").Valueと書いた場合、.Value以下がRangeオブジェクトのメンバになる
Rangeクラスがセル範囲のコレクションとして自己再帰的に実装されているのは確かだけどね
全然違う
RangeクラスとRangeプロパティを混同してはいけない
Range("A1")の式はWorksheetクラスのメンバのRangeプロパティを引数つきで呼び出している
このプロパティ式で参照を取得しているのが、Excelのオブジェクトモデルで定義されたRangeクラスの実体(インスタンス)、つまりA1セルになる
要するに、Range("A1").Valueと書いた場合、.Value以下がRangeオブジェクトのメンバになる
Rangeクラスがセル範囲のコレクションとして自己再帰的に実装されているのは確かだけどね
933デフォルトの名無しさん (ワッチョイ f668-3RYV)
2019/12/01(日) 09:34:33.47ID:lg6qJlYj0934デフォルトの名無しさん (ワッチョイ 122f-Ql8R)
2019/12/01(日) 09:46:42.50ID:BdsW8ng60935デフォルトの名無しさん (ワッチョイ a901-SL5O)
2019/12/01(日) 09:47:10.20ID:Mv7XM2680936デフォルトの名無しさん (ワッチョイ f6f7-4hBt)
2019/12/01(日) 09:52:34.84ID:bUbToLVg0 カッコ有無でエラー出るときあるの勘弁してほしいわ
937デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/01(日) 09:52:45.12ID:qadFHjVDx938デフォルトの名無しさん (ワッチョイ f668-3RYV)
2019/12/01(日) 10:01:28.01ID:lg6qJlYj0 更にcallの絡みもある
939デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/01(日) 10:05:48.08ID:qadFHjVDx >>935
緑川吉行っていうOffice/VBA界の有名人が初心者向けに書いた記事
https://allabout.co.jp/gm/gc/297719/
これはコンパクトで分かりやすい。ただし初心者向けにわざとSheetsをオブジェクト名とかコレクション名とか言っているのは問題がある
正確な知識を得るならこっち
インストラクターのネタ帳 -
「オブジェクト名.プロパティ」という解説はウソですよ
https://www.relief.jp/docs/excel-vba-that-is-not-object-name.html
緑川吉行っていうOffice/VBA界の有名人が初心者向けに書いた記事
https://allabout.co.jp/gm/gc/297719/
これはコンパクトで分かりやすい。ただし初心者向けにわざとSheetsをオブジェクト名とかコレクション名とか言っているのは問題がある
正確な知識を得るならこっち
インストラクターのネタ帳 -
「オブジェクト名.プロパティ」という解説はウソですよ
https://www.relief.jp/docs/excel-vba-that-is-not-object-name.html
940デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/01(日) 10:12:50.14ID:qadFHjVDx941デフォルトの名無しさん (ワッチョイ f668-3RYV)
2019/12/01(日) 10:18:48.73ID:lg6qJlYj0942デフォルトの名無しさん (ワッチョイ b1f1-uW/g)
2019/12/01(日) 10:21:01.02ID:19U1wNi50 >>939
どう間違ってるのですか?
どう間違ってるのですか?
943デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/01(日) 10:21:51.97ID:qadFHjVDx >>942
記事を読めば分かる
記事を読めば分かる
944デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/01(日) 10:25:54.76ID:qadFHjVDx >>941
組み込みオブジェクトはそもそも仕様としてNewできなさそうだけどな
要は As ActiveCell とか As Cells とかいう型指定が出来ないってことだわ、そういうクラスが存在しないわけだから
組み込みオブジェクトはそもそも仕様としてNewできなさそうだけどな
要は As ActiveCell とか As Cells とかいう型指定が出来ないってことだわ、そういうクラスが存在しないわけだから
945デフォルトの名無しさん (スップ Sd12-a1aH)
2019/12/01(日) 11:08:22.23ID:tARyXBCrd NEWと言えば何でintegerとかstringは宣言した段階で使えるのに
オブジェクト型はインスタンス化しないと使えんないの?
オブジェクト型はインスタンス化しないと使えんないの?
946デフォルトの名無しさん (ドコグロ MM9a-e3ak)
2019/12/01(日) 11:19:32.90ID:SqfEoEmMM 面倒だから
integerは値型だからとかもっともらしい説明を付けることもできるが、それは結果論に過ぎない
integerは値型だからとかもっともらしい説明を付けることもできるが、それは結果論に過ぎない
947デフォルトの名無しさん (ワッチョイ f668-3RYV)
2019/12/01(日) 11:27:41.76ID:lg6qJlYj0 インスタンスという概念が無いとそれが新規のオブジェクトなのか既存のオブジェクトかの見分けが付かないよ
他の言語だとstaticとかインスタンス化せずに使えるクラスもあるけどね
他の言語だとstaticとかインスタンス化せずに使えるクラスもあるけどね
948デフォルトの名無しさん (スップ Sd12-a1aH)
2019/12/01(日) 11:52:45.15ID:tARyXBCrd インスタンス化は実体化するため=メモリ領域確保するためって解釈だけど
integerだろうがstringだろうがメモリ確保してるわけだし
>>947
dim x as classtest
dim y as classtest
みたいなので見分けってつかないの?
integerだろうがstringだろうがメモリ確保してるわけだし
>>947
dim x as classtest
dim y as classtest
みたいなので見分けってつかないの?
949デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/01(日) 12:08:59.14ID:qadFHjVDx 正確に言うと値の代入もLetステートメントで行うのがBasic系言語の本来の姿
それを規約上で略記できるようにしているにすぎない
逆にSetステートメントは言語設計上、変数用に確保されたスタックメモリに格納される値がヒープへの参照ポインタであることを示す役割を持っているものと思われる
Variant型変数にオブジェクトを代入するときもこのSetがあるおかげで、スタックの値を参照アドレスとして解釈できるようになっているはず
それを規約上で略記できるようにしているにすぎない
逆にSetステートメントは言語設計上、変数用に確保されたスタックメモリに格納される値がヒープへの参照ポインタであることを示す役割を持っているものと思われる
Variant型変数にオブジェクトを代入するときもこのSetがあるおかげで、スタックの値を参照アドレスとして解釈できるようになっているはず
950デフォルトの名無しさん (ワッチョイ f668-3RYV)
2019/12/01(日) 12:55:42.14ID:lg6qJlYj0 >>948
サチコ、それインスタンス化や
サチコ、それインスタンス化や
951デフォルトの名無しさん (ワッチョイ f668-3RYV)
2019/12/01(日) 12:56:49.87ID:lg6qJlYj0952デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/01(日) 14:45:17.26ID:qadFHjVDx >>951
Letとのバッティングだろう
推測だが、VB6/VBAのコンパイラは、代入演算子と等価演算子がともに'='であることを前提とした仕様になっているんだと思う
プリミティブ型の値の代入はスタックの値のコピーに他ならないので、代入演算子を等価演算子と混同しても論理矛盾が起きない
オブジェクトの場合はそうはいかないので、オブジェクト変数として型宣言した変数へのインスタンス代入の際にはSetの識別子付与を強制するようにしてるんじゃなかろうか
VB.NETではSetが要らなくなってるからコンパイラの仕様だよなこれは
Letとのバッティングだろう
推測だが、VB6/VBAのコンパイラは、代入演算子と等価演算子がともに'='であることを前提とした仕様になっているんだと思う
プリミティブ型の値の代入はスタックの値のコピーに他ならないので、代入演算子を等価演算子と混同しても論理矛盾が起きない
オブジェクトの場合はそうはいかないので、オブジェクト変数として型宣言した変数へのインスタンス代入の際にはSetの識別子付与を強制するようにしてるんじゃなかろうか
VB.NETではSetが要らなくなってるからコンパイラの仕様だよなこれは
953デフォルトの名無しさん (ワッチョイ 9279-luhV)
2019/12/01(日) 15:01:32.65ID:pJZuHPp00 参照カウント型GCの都合だよ
Setで左辺のオブジェクトの参照カウントが+1されて変数に束縛される
左辺がNothingだったら束縛していたオブジェクト参照カウントを-1する
変数がemptyやNothingだったら何もしない
見た目以上に重い代入処理
関数や手続きの戻りまで行ったら全てのローカル変数に対してSet 変数 = Nothing相当の処理をする
だから関数の最後でNothingの代入は不要
ただし
Setで左辺のオブジェクトの参照カウントが+1されて変数に束縛される
左辺がNothingだったら束縛していたオブジェクト参照カウントを-1する
変数がemptyやNothingだったら何もしない
見た目以上に重い代入処理
関数や手続きの戻りまで行ったら全てのローカル変数に対してSet 変数 = Nothing相当の処理をする
だから関数の最後でNothingの代入は不要
ただし
954デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/01(日) 15:36:05.55ID:qadFHjVDx955デフォルトの名無しさん (ワッチョイ 122f-Ql8R)
2019/12/01(日) 15:43:44.55ID:BdsW8ng60956デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/01(日) 15:47:47.95ID:qadFHjVDx957デフォルトの名無しさん (ワッチョイ f668-3RYV)
2019/12/01(日) 15:49:14.68ID:lg6qJlYj0 >>955
あーそれだ、ありがとう
setが無いと、
foo = cells(1,1)
が
set foo = cells(1,1)
なのか
foo = cells(1,1).value
なのか、
見分けが付かないって事だね
あーそれだ、ありがとう
setが無いと、
foo = cells(1,1)
が
set foo = cells(1,1)
なのか
foo = cells(1,1).value
なのか、
見分けが付かないって事だね
958デフォルトの名無しさん (ワッチョイ 122f-Ql8R)
2019/12/01(日) 16:05:54.42ID:BdsW8ng60 >>942
ちょっとリンク先見てみたけど、微妙な説明してるなぁ
混乱する一番の原因は、
オブジェクトを返すプロパティには、そのオブジェクトの型と同じ名前を使う
っていう指針があるから
Dim r As Range
のRangeは型名(=オブジェクト名)
Set r = ActiveSheet.Range("A1")
のRangeは文法的にはWorksheetオブジェクトのRangeプロパティ
RangeプロパティはRange型のインスタンスを返す
ActiveSheetなんてオブジェクトはないが、これは
Set r = Application.ActiveSheet.Range("A1")
の省略形とみなされるので、ApplicationオブジェクトのActiveSheetプロパティだと解釈される
ActiveSheetプロパティが返しているものがWorksheetオブジェクト(のインスタンス)
Worksheet型じゃなくてSheet型だろとかいう突っ込みとか
Rangeのデフォルトプロパティだろとかいう突っ込みは勘弁な
ちょっとリンク先見てみたけど、微妙な説明してるなぁ
混乱する一番の原因は、
オブジェクトを返すプロパティには、そのオブジェクトの型と同じ名前を使う
っていう指針があるから
Dim r As Range
のRangeは型名(=オブジェクト名)
Set r = ActiveSheet.Range("A1")
のRangeは文法的にはWorksheetオブジェクトのRangeプロパティ
RangeプロパティはRange型のインスタンスを返す
ActiveSheetなんてオブジェクトはないが、これは
Set r = Application.ActiveSheet.Range("A1")
の省略形とみなされるので、ApplicationオブジェクトのActiveSheetプロパティだと解釈される
ActiveSheetプロパティが返しているものがWorksheetオブジェクト(のインスタンス)
Worksheet型じゃなくてSheet型だろとかいう突っ込みとか
Rangeのデフォルトプロパティだろとかいう突っ込みは勘弁な
959デフォルトの名無しさん (ワッチョイ 9201-MhVQ)
2019/12/01(日) 18:07:13.10ID:Enyr5Fgf0 >>958
> 混乱する一番の原因は、
> オブジェクトを返すプロパティには、そのオブジェクトの型と同じ名前を使う
> っていう指針があるから
違うよ
オブジェクトなんて曖昧な用語を使うから混乱するの
型(クラス)と実体(インスタンス)をきちんと区別すればいいだけ
> 混乱する一番の原因は、
> オブジェクトを返すプロパティには、そのオブジェクトの型と同じ名前を使う
> っていう指針があるから
違うよ
オブジェクトなんて曖昧な用語を使うから混乱するの
型(クラス)と実体(インスタンス)をきちんと区別すればいいだけ
960デフォルトの名無しさん (ワッチョイ 3275-R3ru)
2019/12/01(日) 19:22:42.00ID:y7nKgQdu0 Select CaseステートメントでLong型変数の判定がおかしいのですがなぜですか?
@では5000未満と判定されているのに、Aではきちんと12500と判定されます
https://i.imgur.com/TmJ2jHa.png
https://pastebin.com/LvSb9cmT
@では5000未満と判定されているのに、Aではきちんと12500と判定されます
https://i.imgur.com/TmJ2jHa.png
https://pastebin.com/LvSb9cmT
961デフォルトの名無しさん (ワッチョイ 3275-R3ru)
2019/12/01(日) 19:27:45.01ID:y7nKgQdu0 自決しました
String型で値渡ししてました…
String型で値渡ししてました…
962デフォルトの名無しさん (ワッチョイ 69f0-a1aH)
2019/12/01(日) 19:43:10.04ID:oxdJbHeB0 値型はNewしないで参照型はNewするというルールに従うと
別言語でStringは参照型なのに何でNewしなくていいのかと悩んだな
結局参照型でもNewしなくていい場合があるってスルーするのが一番だけど
別言語でStringは参照型なのに何でNewしなくていいのかと悩んだな
結局参照型でもNewしなくていい場合があるってスルーするのが一番だけど
963デフォルトの名無しさん (ワッチョイ f668-3RYV)
2019/12/01(日) 19:55:09.73ID:lg6qJlYj0 stringは今となっては値として何も考えずに使えるよね
昔は配列だの何だの意外とめんどくさかった。更に文字コードやなんやでそれはもう
https://docs.microsoft.com/ja-jp/dotnet/api/system.string?redirectedfrom=MSDN&view=netframework-4.8#constructors
昔は配列だの何だの意外とめんどくさかった。更に文字コードやなんやでそれはもう
https://docs.microsoft.com/ja-jp/dotnet/api/system.string?redirectedfrom=MSDN&view=netframework-4.8#constructors
964デフォルトの名無しさん (ワッチョイ a9b3-nvwQ)
2019/12/01(日) 20:17:07.69ID:Ta8YhOMq0 え、プロパティの引数って絶対に()つけないといけないの?
そこら辺の文法が謎だわ
本でも説明されてないし
ネットで検索しまくってもプロパティの引数には()をつけろなんて書いてないし
どこでそんな知識仕入れてきたの?
そこら辺の文法が謎だわ
本でも説明されてないし
ネットで検索しまくってもプロパティの引数には()をつけろなんて書いてないし
どこでそんな知識仕入れてきたの?
965デフォルトの名無しさん (ワッチョイ f668-3RYV)
2019/12/01(日) 20:27:51.07ID:lg6qJlYj0 そもそもプロパティに引数ってのがよーわからん
getterなんだろうけど
getterなんだろうけど
966デフォルトの名無しさん (ワッチョイ a901-SL5O)
2019/12/01(日) 20:35:21.31ID:Mv7XM2680 >>965
endとかだよ
endとかだよ
967デフォルトの名無しさん (ワッチョイ b1d0-o7DB)
2019/12/01(日) 20:44:53.15ID:wgaB7PE60 ActiveSheet.Range("A1") = "TEST"
とか
str = ActiveSheet.Range("A1")
とかの()内のことを言っているんだろうか?
とか
str = ActiveSheet.Range("A1")
とかの()内のことを言っているんだろうか?
968デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/01(日) 21:06:45.20ID:qadFHjVDx969デフォルトの名無しさん (ワッチョイ a901-SL5O)
2019/12/01(日) 21:14:55.98ID:Mv7XM2680 >>968
プロパティの引数に()いるの?に対してその答えはおかしい
プロパティの引数に()いるの?に対してその答えはおかしい
970デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/01(日) 21:23:50.92ID:qadFHjVDx971デフォルトの名無しさん (ワッチョイ f668-3RYV)
2019/12/01(日) 21:51:43.86ID:lg6qJlYj0972デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/01(日) 22:00:59.47ID:qadFHjVDx973デフォルトの名無しさん (ワッチョイ a901-SL5O)
2019/12/01(日) 22:13:02.79ID:Mv7XM2680 >>971
設定に引数がなんで必要ないの??
設定に引数がなんで必要ないの??
974デフォルトの名無しさん (ワッチョイ a901-SL5O)
2019/12/01(日) 22:16:58.66ID:Mv7XM2680 アクセサ VBA
はい、なんもヒットしません
初心者に解説する場合、専門用語を使うってどうなの?
はい、なんもヒットしません
初心者に解説する場合、専門用語を使うってどうなの?
975デフォルトの名無しさん (ワッチョイ 9201-MhVQ)
2019/12/01(日) 22:25:27.99ID:Enyr5Fgf0 プロパティに引数持てる言語はVB系の言語しかないのでそういうもんだと思うしかないような気がする
976デフォルトの名無しさん (ワッチョイ a901-SL5O)
2019/12/01(日) 22:28:21.62ID:Mv7XM2680 プロパティに引数もてるとか持てないとかはっきりしろよ…
977デフォルトの名無しさん (ワッチョイ f668-3RYV)
2019/12/01(日) 22:29:04.82ID:lg6qJlYj0978デフォルトの名無しさん (ワッチョイ 9279-luhV)
2019/12/01(日) 22:32:32.45ID:pJZuHPp00 Range COMオブジェクト デフォルトプロパティ
でぐぐると良いかも
でぐぐると良いかも
979デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/01(日) 22:52:46.61ID:qadFHjVDx >>974
VBA アクセサで普通にヒットするぞ
VBA アクセサで普通にヒットするぞ
980デフォルトの名無しさん (ワッチョイ b1f1-uW/g)
2019/12/01(日) 23:25:29.33ID:19U1wNi50 >>979
「汗臭」で検索してないか?
「汗臭」で検索してないか?
981デフォルトの名無しさん (ワッチョイ f668-3RYV)
2019/12/01(日) 23:43:26.99ID:lg6qJlYj0982デフォルトの名無しさん (ワッチョイ b1f1-uW/g)
2019/12/01(日) 23:46:59.48ID:19U1wNi50 >>981
なんだとこのツルッパゲ!
なんだとこのツルッパゲ!
983デフォルトの名無しさん (ワッチョイ 8101-MhVQ)
2019/12/01(日) 23:49:23.02ID:J+qwPBxd0 グラサンのハゲはここにこないのー?
984デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/02(月) 06:20:27.87ID:jajTU6Llx このあたりの話は自分でクラスを作ったことがなければ分からないと思う
ともあれ、質問者の意図は引数付きのプロパティ式で丸括弧を省略できるかどうかという話なんだろうから、出来ないという結論で締めて終わり
要するにRange("A1")をRange "A1" とは書けない
これだとRangeという名前のSubプロジージャに引数"A1"を与えるという全くデタラメな構文になる
ともあれ、質問者の意図は引数付きのプロパティ式で丸括弧を省略できるかどうかという話なんだろうから、出来ないという結論で締めて終わり
要するにRange("A1")をRange "A1" とは書けない
これだとRangeという名前のSubプロジージャに引数"A1"を与えるという全くデタラメな構文になる
985デフォルトの名無しさん (アウアウウー Sacd-W09L)
2019/12/02(月) 10:25:16.60ID:9b18ESq8a hage("A1")
986デフォルトの名無しさん (ワッチョイ b1f1-uW/g)
2019/12/02(月) 12:07:45.41ID:b+6W/5Or0 Tsuruppage("A1")
987デフォルトの名無しさん (スッップ Sdb2-iiDQ)
2019/12/02(月) 12:58:25.24ID:bEJSdplkd 初心者にとって感覚的に分かりやすいのは戻りを使う場合はカッコを使う。
戻りを使わない場合はカッコを使わない。
Call文だけ例外でカッコを使う。
で良いんじゃね?
戻りを使わない場合はカッコを使わない。
Call文だけ例外でカッコを使う。
で良いんじゃね?
988デフォルトの名無しさん (ワッチョイ a901-SL5O)
2019/12/02(月) 20:27:37.88ID:HFZWrDUD0989デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/02(月) 20:40:04.97ID:4BXx3P/Mx990デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/02(月) 20:41:20.57ID:4BXx3P/Mx991デフォルトの名無しさん (ワッチョイ a901-SL5O)
2019/12/02(月) 21:03:22.49ID:HFZWrDUD0992デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/02(月) 21:21:14.86ID:4BXx3P/Mx993デフォルトの名無しさん (ワッチョイ a901-SL5O)
2019/12/02(月) 21:52:36.19ID:HFZWrDUD0 Cells(i, j).Borders(xlDiagonalDown).LineStyle = xlInsideHorizontal
わかりやすくな
プログラム初心者でもわかるように解説しろ
ボーダーには()でラインスタイルには=
どちらもプロパティなはず
なんで?
どれがなにの戻り値なの?ってのを
主語がなかったりテキトーなカタカナでごまかしてるのおおすぎ
わかりやすくな
プログラム初心者でもわかるように解説しろ
ボーダーには()でラインスタイルには=
どちらもプロパティなはず
なんで?
どれがなにの戻り値なの?ってのを
主語がなかったりテキトーなカタカナでごまかしてるのおおすぎ
994デフォルトの名無しさん (ワッチョイ f668-3RYV)
2019/12/02(月) 22:05:27.19ID:gEmwbuWH0 日本語崩壊してて草
995デフォルトの名無しさん (ワッチョイ 8101-MhVQ)
2019/12/02(月) 22:05:27.56ID:h5Kj2a0d0 北海道でスーパーハゲをしてるグラサンのおっさんこないのー?
996デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/02(月) 22:13:40.36ID:4BXx3P/Mx LineStyleプロパティは引数の指定を要求されないプロパティだから()による引数指定は要らない
かつ、Linestyleプロパティは値の読み取りの他に値の設定も可能なプロパティなので、代入演算子の = でxlLineStyle列挙体の定数を設定することにより、罫線の書式を設定できる
プロパティだから()が必要なんだとか=が必要なんだとかっていう単純な捉え方は理解の妨げになるからやめた方がよい
引数による要素の指定を要求/許容しているのか、値の読み取りだけでなく値の設定も出来るのかといった個々のプロパティの仕様の違いにより、式の書き方が変わるだけ
かつ、Linestyleプロパティは値の読み取りの他に値の設定も可能なプロパティなので、代入演算子の = でxlLineStyle列挙体の定数を設定することにより、罫線の書式を設定できる
プロパティだから()が必要なんだとか=が必要なんだとかっていう単純な捉え方は理解の妨げになるからやめた方がよい
引数による要素の指定を要求/許容しているのか、値の読み取りだけでなく値の設定も出来るのかといった個々のプロパティの仕様の違いにより、式の書き方が変わるだけ
997デフォルトの名無しさん (ワッチョイ f668-3RYV)
2019/12/02(月) 22:16:41.89ID:gEmwbuWH0 ってかこの一連の問題、すげー難しいよ
初心者を自覚してるならあまり深く考えないほうが良いと思う
得るものは少ない、ぱっと書き方だけ覚えてどんどん次へ進んだほうがいいような
初心者を自覚してるならあまり深く考えないほうが良いと思う
得るものは少ない、ぱっと書き方だけ覚えてどんどん次へ進んだほうがいいような
998デフォルトの名無しさん (アークセー Sx79-CWam)
2019/12/02(月) 22:17:27.68ID:4BXx3P/Mx WorksheetオブジェクトのCellsプロパティなどは引数なしでも引数ありでも使用できるし、=で値も設定できる
()の要不要とか=を用いた代入の可否なんてプロパティの仕様によるとしか
()の要不要とか=を用いた代入の可否なんてプロパティの仕様によるとしか
999デフォルトの名無しさん (ワッチョイ f602-FWG3)
2019/12/02(月) 22:20:20.67ID:ONNaKUnx0 >>993
こう説明したらわかる?
Cellsの戻り値に対して.Borders〜〜って事
Borders(xlDiagonalDown)の.LineStyleに対して = xlInsideHorizontalって事
こう説明したらわかる?
Cellsの戻り値に対して.Borders〜〜って事
Borders(xlDiagonalDown)の.LineStyleに対して = xlInsideHorizontalって事
1000デフォルトの名無しさん (ワッチョイ a901-SL5O)
2019/12/02(月) 22:20:29.46ID:HFZWrDUD0 >>996
引数の要求をされないプロパティ??
linestyleだけではエラーになるのでは?
レンジのラインスタイルです!だけは意味不明でしょ
値の設定?読み取り?
設定 罫線を引く?
読み取り ???
つまりどういうこと?
定数を設定??
bordersの引数も定数では?
引数の要求をされないプロパティ??
linestyleだけではエラーになるのでは?
レンジのラインスタイルです!だけは意味不明でしょ
値の設定?読み取り?
設定 罫線を引く?
読み取り ???
つまりどういうこと?
定数を設定??
bordersの引数も定数では?
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 77日 2時間 45分 30秒
新しいスレッドを立ててください。
life time: 77日 2時間 45分 30秒
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を超えています。これ以上書き込みはできません。
ニュース
- テレビ朝日 本社から男性が転落し死亡。関連会社社員か 当たった通行人が左肩軽傷 [阿弥陀ヶ峰★]
- 高市首相、トランプ米大統領に「早期に会いたい」 日中関係悪化受け… ★4 [BFU★]
- 【コメ】卸売業者「簡単に安売りできない」「大暴落起きれば大赤字に」 JA「新米の販売進度が近年になく遅い。コメの回転が悪い」 ★5 [Hitzeschleier★]
- 「これいいじゃん!!!」 セブン-イレブンの1620円で買える“1人用クリスマスケーキ”🎂に注目殺到「天才すぎる」 [パンナ・コッタ★]
- 高市早苗首相が天理教系企業に“巨額発注” 総額5000万円 本人は「政治団体の活動に必要な支出」と回答 ★2 [Hitzeschleier★]
- テレビ朝日本社から20~30代の関連会社社員とみられる男性が転落し死亡 六本木けやき坂通りの通行人にはけが人なし [少考さん★]
- 【速報】テレビ朝日本社から20代〜30代の男性が飛び降り自殺して死亡 東京・六本木 [597533159]
- 【高市速報】中国、最後通牒 [308389511]
- お前らダウナー系だよな
- 現役JKのお茶会スレ( ¨̮ )︎︎𖠚ᐝ182
- 【朗報】カニ漁バイト募集!急げ! [834922174]
- 精液がゼリー状で黄ばんでるせいで女と付き合う勇気ない
