トップページtech
1002コメント349KB

Excel VBA 質問スレ Part37 [転載禁止]©5ch.io

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2015/06/10(水) 16:18:49.84ID:T4wZlTyk
ExcelのVBAに関する質問スレです

★1 質問テンプレ(雛形)は用意しませんが、OSとExcelのバージョンは必ず書きましょう。

★2 ExcelのVBA以外の部分に関する質問はNGです。
   但し、VBA無しでも出来ることだが、あえてVBAでやりたいって物に関してはOK。

★3 ExcelのVBE(Visual Basic Editor)を使うとしても、VBAの分野以外に関してはスレ違いです。

 VBAとは、『Visual Basic for Applications』の略で
  Application
  ├Workbooks
  |└Workbook
  |  ├Worksheets
  |  |└Worksheet
 というApplication以下のオブジェクトを、VB言語で操作するものを指します。
 例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、
 セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。

★4 とりあえず、Excelのインスタンスを作らずにVB6で出来ることは全てスレ違いだと思ってください。

★5 レベルはどうあれ、ここはプログラマ用の板スレです。プログラマとは、自分でプログラムを組み、
   コードを書く人の事なので、自分でやるきは全く無く、丸投げしようって人はお断りです。
   ヒントを貰えばあとは自力でなんとかしますって人のみどうぞ。

★6 わからなければとりあえず「マクロの記録」(Alt, T, M, R)

前スレ:Excel VBA 質問スレ Part36
http://peace.2ch.net/test/read.cgi/tech/1420790342/

関連スレ:VBAなんでも質問スレ
http://toro.2ch.net/test/read.cgi/tech/1342087380/
0002デフォルトの名無しさん2015/06/10(水) 16:20:02.51ID:T4wZlTyk
01 http://pc11.2ch.net/test/read.cgi/tech/1054356121/
02 http://pc11.2ch.net/test/read.cgi/tech/1168308855/
03 http://pc11.2ch.net/test/read.cgi/tech/1180192018/
04 http://pc11.2ch.net/test/read.cgi/tech/1189814602/
05 http://pc11.2ch.net/test/read.cgi/tech/1197448064/
06 http://pc11.2ch.net/test/read.cgi/tech/1205231499/
07 http://pc11.2ch.net/test/read.cgi/tech/1212587819/
08 http://pc11.2ch.net/test/read.cgi/tech/1219673793/
09 http://pc11.2ch.net/test/read.cgi/tech/1228372971/
10 http://pc12.2ch.net/test/read.cgi/tech/1235332603/
11 http://pc12.2ch.net/test/read.cgi/tech/1241885130/
12 http://pc12.2ch.net/test/read.cgi/tech/1247566074/
13 http://pc12.2ch.net/test/read.cgi/tech/1254281104/
14 http://pc12.2ch.net/test/read.cgi/tech/1262748898/
15 http://pc12.2ch.net/test/read.cgi/tech/1271261239/
16 http://hibari.2ch.net/test/read.cgi/tech/1280045912/
17 http://hibari.2ch.net/test/read.cgi/tech/1289182437/
18 http://hibari.2ch.net/test/read.cgi/tech/1298240666/
19 http://hibari.2ch.net/test/read.cgi/tech/1305754555/
20 http://hibari.2ch.net/test/read.cgi/tech/1312435844/
0003デフォルトの名無しさん2015/06/10(水) 16:21:00.43ID:T4wZlTyk
21 http://hibari.2ch.net/test/read.cgi/tech/1316931607/
22 http://toro.2ch.net/test/read.cgi/tech/1322400978/
23 http://toro.2ch.net/test/read.cgi/tech/1327763113/
24 http://toro.2ch.net/test/read.cgi/tech/1334305148/
25 http://toro.2ch.net/test/read.cgi/tech/1341722983/
26 http://toro.2ch.net/test/read.cgi/tech/1345363310/
27 http://toro.2ch.net/test/read.cgi/tech/1353842387/
28 http://toro.2ch.net/test/read.cgi/tech/1359607536/
29 http://toro.2ch.net/test/read.cgi/tech/1364689772/
30 http://toro.2ch.net/test/read.cgi/tech/1370088822/
31 http://toro.2ch.net/test/read.cgi/tech/1376371376/
32 http://toro.2ch.net/test/read.cgi/tech/1381151995/
33 http://peace.2ch.net/test/read.cgi/tech/1382015080/
34 http://peace.2ch.net/test/read.cgi/tech/1403911485/
35 http://peace.2ch.net/test/read.cgi/tech/1414186311/
36 http://peace.2ch.net/test/read.cgi/tech/1420790342/
0004デフォルトの名無しさん2015/06/10(水) 18:11:43.95ID:v/kP17pJ
このスレはテンプレを勝手に改悪した上に重複スレ

正しい本スレはこちら
Excel VBA 質問スレ Part37 [転載禁止]©2ch.net
http://peace.2ch.net/test/read.cgi/tech/1420841190/
0005デフォルトの名無しさん2015/06/10(水) 21:27:42.91ID:NKKgmsfq
ビープ音なしで音をならすことは可能でしょうか?
0006デフォルトの名無しさん2015/06/10(水) 23:14:32.55ID:5Tufff63
>>5
お腹に空気をため、肛門を締め、そのあと一気に開放するといい音が出ますよ。
0007デフォルトの名無しさん2015/06/11(木) 00:19:16.16ID:ztlVTgcY
>>5-6
あなたの話は>>1★1〜6の何れかに抵触しています
分かったら他所に行って下さい
0008デフォルトの名無しさん2015/06/11(木) 00:27:04.34ID:SBIakyAp
>>5
vba beep でググればざっくざくと答えが
000982015/06/11(木) 00:28:37.49ID:SBIakyAp
じゃなかった^^;

けどまぁググればざっくざくと出てくるのは同じなわけで

サウンドを再生する
http://officetanaka.net/excel/vba/tips/tips22.htm
0010デフォルトの名無しさん2015/06/11(木) 01:09:07.93ID:JGp60O3n
>>7
だから、その勝手に作ったテンプレでスレ利用者を排除する真似をやめろっつーの
この程度のことでいちいちスレ違い呼ばわりしてたら擦れが機能せんわ

まぁ重複スレだしテンプレ改悪だしでこのスレの存在意義無いから
本スレに戻るのには賛成だけど

ということで、正しい本スレはこちら
Excel VBA 質問スレ Part37 [転載禁止]©2ch.net
http://peace.2ch.net/test/read.cgi/tech/1420841190/
0011デフォルトの名無しさん2015/06/11(木) 10:47:12.94ID:p5MYkeGm
win64apiのmidi系だね
0012デフォルトの名無しさん2015/06/11(木) 22:50:07.84ID:nXSQMIaU
>>8-11
あなたの話は>>1★1〜6の何れかに抵触しています
分かったら他所に行って下さい
0013デフォルトの名無しさん2015/06/12(金) 08:54:06.23ID:3WPnrkkp
>>12
あなたの話も>>1★1〜6の何れかに抵触しています
分かったらここに行って下さい

Excel VBA 質問スレ Part37 [転載禁止]©2ch.net
http://peace.2ch.net/test/read.cgi/tech/1420841190/
0014デフォルトの名無しさん2015/06/12(金) 18:07:59.01ID:TDDodFPA
毎度毎度のことながらスレ立てで分裂すんのユーザーからすれば迷惑以外の何物でもないんだが
0015デフォルトの名無しさん2015/06/12(金) 19:15:52.69ID:aMl82aru
>>14
あなたの話は>>1★1〜6の何れかに抵触しています
分かったら他所に行って下さい
0016デフォルトの名無しさん2015/06/12(金) 22:16:35.64ID:9iuD3EDL
>>15
あなたの話は以下略
このスレも略
0017デフォルトの名無しさん2015/06/12(金) 23:56:41.89ID:25M6JlyC
向こうの方が伸びようとしてる
0018デフォルトの名無しさん2015/06/13(土) 10:36:54.24ID:s8riW9h4
スレ違い話しかしてないんだから仕方ない。
0019デフォルトの名無しさん2015/06/13(土) 11:15:13.59ID:H2ViEUuY
midioutなんとか系のapiをいっぱい使えばできるみたいね

Excelで超音波テルミンを作成する
http://www.mu-tech.co.jp/Soft/SimToyOcxHelp/excel_music.htm
0020デフォルトの名無しさん2015/06/13(土) 23:23:56.43ID:gPI4SaF/
>>17

もともと重複スレだってのに、
糞みたいなテンプレを勝手に入れちゃってるからなお始末が悪い

とにかくあの糞テンプレがある限り
それをたてにして>>7とか>>12みたいな基地外が暴れるので
まともなスレの進行は不可能なんだから
おとなしく放置して落としてしまうのが吉
0021デフォルトの名無しさん2015/06/14(日) 05:50:03.47ID:XH+fyzBI
>>16〜20
あなたの話は>>1★1〜6の何れかに抵触しています
分かったら他所に行って下さい
0022デフォルトの名無しさん2015/06/14(日) 14:14:40.48ID:Qy/1/K9E
非表示のシートをselectするとエラーが出るのですが仕様ですか
0023デフォルトの名無しさん2015/06/14(日) 16:02:39.25ID:R2Pjskdl
>>22
あなたの話は>>1★1〜6の何れかに抵触しています
分かったら他所に行って下さい
0024デフォルトの名無しさん2015/06/14(日) 16:27:00.34ID:aLL1Dt0J
>>22
質問自体はスレチじゃないけど、
このスレは>>23みたいなキチガイが居るからこっちに移動しなさい

Excel VBA 質問スレ Part37 [転載禁止]©2ch.net
http://peace.2ch.net/test/read.cgi/tech/1420841190/

回答は向こうに書いとくね
0025デフォルトの名無しさん2015/06/14(日) 20:58:38.23ID:WTUlhb9b
セルの縦・横をまとめて変えるのはどうするのが一番早いですか
0026デフォルトの名無しさん2015/06/14(日) 21:38:04.54ID:M+qlsClk
>>25
列も番号で指定できるのはわかってるよな?
0027デフォルトの名無しさん2015/06/14(日) 21:42:39.74ID:9sCLitNc
>>25
まとめて変える方法はない
どうしてもColumnWidthとRowHeightを順番に指定することになる
0028デフォルトの名無しさん2015/06/14(日) 22:07:41.95ID:R2Pjskdl
>>25-27
あなたの話は>>1★1〜6の何れかに抵触しています
分かったら他所に行って下さい
0029デフォルトの名無しさん2015/06/14(日) 22:11:45.15ID:1Cglll13
どうぞ。

Sub Macro2()
Sheet1.Rows("1:7").RowHeight = 13.5
Sheet1.Columns("A:H").ColumnWidth = 8.38
End Sub
0030デフォルトの名無しさん2015/06/15(月) 05:24:21.96ID:zGK79kLK
>>25-27,>>29
セルの縦・横と言われて本人しか分からないような幅や高さと断定出来る自演は
気持ち悪いので他所でやって下さい
0031デフォルトの名無しさん2015/06/15(月) 16:05:09.87ID:7tvVCPZS
中身すべてを回転するならエクセルの機能を使ったほうが手っとり早い
0032デフォルトの名無しさん2015/06/15(月) 17:23:17.05ID:pR/1zNa6
>>30
まぁいいのだが、25-27の流れでソースを書いただけなんだがw
自演と思われたならしかたない。
0033デフォルトの名無しさん2015/06/16(火) 01:07:12.48ID:bDVKNfTy
転置のことじゃないのかね
0034デフォルトの名無しさん2015/06/16(火) 21:34:16.92ID:aGwpwIZL
「セルの縦・横をまとめて変える」 を転置と受け取るのはちょっと難しいな
0035デフォルトの名無しさん2015/06/17(水) 18:30:44.07ID:iHkQRcN6
forでちまちま変えるのがベスト
0036デフォルトの名無しさん2015/06/17(水) 19:38:35.98ID:8RWDMsVI
ふぉーなるほどねぇー
0037デフォルトの名無しさん2015/06/17(水) 21:01:06.42ID:v0VeLrCG
シート1のA1のデータをコピーしてシート3のA1にペーストしたいのですが
シート3でペーストする前にシート3の全行を一旦全削除してから改めてペーストした場合
削除処理を行う事でコピー状態がなくなります
なのでペーストをしようとしてもコピー出来ませんと怒られます

コピー状態を維持したまま削除をすることって可能でしょうか?
0038デフォルトの名無しさん2015/06/17(水) 21:11:26.13ID:rQ7tooCW
>>37
シート3の情報消してからシート1の情報をコピーすりゃいいだけでは。
0039デフォルトの名無しさん2015/06/17(水) 21:26:31.26ID:v0VeLrCG
それもいいけど
シート1でボタンを押下しての作業なので
シート1から一旦シート3に行ってまた削除して、
そこからシート1に戻ってコピーしてまたシート3に行くのはちょっと無駄が多いかなと
0040デフォルトの名無しさん2015/06/17(水) 21:35:33.21ID:Oyz1/rZu
行く、とは?
0041デフォルトの名無しさん2015/06/17(水) 22:01:18.79ID:gfoiZHDB
全行削除してからってんだったらデータのあるなし関係なしにシート3を消してまた作ってその上でやりゃ良い
0042デフォルトの名無しさん2015/06/17(水) 22:01:45.28ID:fsYg4KyV
>>39
コピー機能をそのまま使わず、変数に一時的に行データをいれればいい。
0043デフォルトの名無しさん2015/06/18(木) 00:05:26.65ID:TdPGkGw+
>>40
シートをアクティブにするってことだろ
初々しい
0044デフォルトの名無しさん2015/06/18(木) 00:25:05.49ID:BXvuiwZi
ウィウィ
0045デフォルトの名無しさん2015/06/18(木) 00:25:11.00ID:WQoy00yJ
シートをアクティブにしなけりゃ削除できないと思ってた、ということか・・・
0046デフォルトの名無しさん2015/06/18(木) 08:56:35.56ID:8T2E3EQD
>>36
0047デフォルトの名無しさん2015/06/21(日) 20:55:03.33ID://3eWWMK
apiでクリップボードを操作
0048デフォルトの名無しさん2015/06/22(月) 13:00:27.32ID:8PARE+E6
Subを使わず返り値なしのFunctionを使っても無問題ですか?
そもそも違いは?
0049デフォルトの名無しさん2015/06/22(月) 14:09:37.12ID:TmLxfqvq
Functionではセルに値を書き込んだりするなどいくつかの動作が不可能
0050デフォルトの名無しさん2015/06/22(月) 15:09:25.68ID:jVJ9TWG/
ユーザー定義関数として使う場合か
0051デフォルトの名無しさん2015/06/22(月) 15:31:09.76ID:8PARE+E6
>>49
まことですか?
0052デフォルトの名無しさん2015/06/22(月) 15:31:35.99ID:8PARE+E6
そんなことないとおもうぞ
0053デフォルトの名無しさん2015/06/22(月) 15:36:11.61ID:jVJ9TWG/
おれっち補足したのに(´・_・`)
0054デフォルトの名無しさん2015/06/22(月) 18:15:44.73ID:0q8cyi70
>>48
VBAで戻り値のないFunctionは作れない
戻り値を無視するようなコードを書くのは自由
0055デフォルトの名無しさん2015/06/22(月) 21:12:30.87ID:TmLxfqvq
Functionのコードの中でどこかのセルにRange("xxx").Value = yyy みたいなことはできないっていう意味だよ。
セルに直接 = Function1(1)とかするのはもちろんできる。
0056デフォルトの名無しさん2015/06/22(月) 21:48:04.06ID:0q8cyi70
>>55
同じこと書くけど、それはFunctionをユーザー定義関数としてワークシートから呼び出す場合に限った話
VBA内から呼び出す場合はそんな制限はない
0057デフォルトの名無しさん2015/06/22(月) 23:05:46.14ID:9wnjfpMf
>>55-56
マジか、知らんかったわ
まあ、そんな変な関数作ろうとは思わないけど
0058デフォルトの名無しさん2015/06/23(火) 00:10:08.99ID:UAjGfnki
>>56
ふーん、できるようになったんだ。
昔はできなかったと思う。
0059デフォルトの名無しさん2015/06/23(火) 00:15:17.88ID:Pv1JZpYa
>>56
できんの??そんなの関数じゃないじゃん
0060デフォルトの名無しさん2015/06/23(火) 00:24:29.85ID:DxUnRor8
おまえら集団で夜釣りか?普通に動いたぞ

Sub a()
  b
End Sub

Function b()
  Cells(1, 1) = 123
End Function
0061デフォルトの名無しさん2015/06/23(火) 00:34:01.97ID:VBEsOuDb
>>59
関数は写像だとでも言いたいのか?
学校で習ったばかりの知識を自慢したかったのかな?
0062デフォルトの名無しさん2015/06/23(火) 00:40:10.83ID:4U4OiGi8
★構ってちゃん注意報★

わざと常識外れのことを書いて、訂正のレスを待つという初歩的な手口です
ひっかからないよう注意しましょう
0063デフォルトの名無しさん2015/06/23(火) 04:47:04.91ID:PyyIfQGm
Sub はマクロの一覧に表示されて Function は表示されない
ぱっと見で存在を知られたくないコードは Function でどーぞ

ワークシート上でユーザー関数を使わなかったり
VBEでグローバル変数を大量に使って管理メンド な状態になってなかったり
自分しかコード見ないし、可読性?なにそれな状態だったらどっち使っても同じ

って解釈
0064デフォルトの名無しさん2015/06/24(水) 13:38:40.20ID:XNYsXY4x
パスワードかけてもバイナリいじれば書き換えられちゃいますけど、
パスワード以外にコードを見せない方法ってありますかね?
0065デフォルトの名無しさん2015/06/24(水) 13:49:38.30ID:ClIbcHNt
ありますん
0066デフォルトの名無しさん2015/06/24(水) 13:54:12.16ID:m6QuBGHp
どっちだよw
0067デフォルトの名無しさん2015/06/24(水) 14:36:47.28ID:hCh+/iKv
>>64
vbaは隠しようがないんちゃうんちゃう。
0068デフォルトの名無しさん2015/06/24(水) 15:14:48.19ID:MRMo3IX+
ツール→ブックの共有→編集タブ→複数のユーザーによる〜 にチェック入れると
VBE開いても表示されない
チェック外せば見えるようになるけど
0069デフォルトの名無しさん2015/06/25(木) 00:01:24.63ID:jos0XzUP
>>1-999
あなたの話は>>1★1〜6の何れかに抵触しています
分かったら他所に行って下さい
0070デフォルトの名無しさん2015/06/25(木) 22:13:37.27ID:d8tX0Al+
book1からbook2へコピーしようとするとオープンはできますが
コピーの段階で、実行時エラー、オブジェクトが必要です が出てしまいます
0071デフォルトの名無しさん2015/06/25(木) 22:57:48.66ID:4a2fuGbQ
>>70
範囲指定する時にブックやシートを省略しないこと
0072デフォルトの名無しさん2015/06/26(金) 20:07:21.31ID:utQ5XYVi
最初の行から最後の行(変化する)に、何種類の値が入っているか調べたいです
範囲はF1〜最後のF列最後の行です
例えば1行目から100行目からならば
MsgBox Application.Evaluate("=SUMPRODUCT(1/COUNTIF(F1:F100,F1:F100))")
で表示できました
この最後の行を
Range("A1").End(xlDown).Rowを使って表すために
MsgBox Application.Evaluate("=SUMPRODUCT(1/COUNTIF(Range(Cells(6, 1),Cells(ActiveSheet.Range(Cells(1,1)).End(xlDown).Row, 11)),Range(Cells(6, 1),Cells(ActiveSheet.Range(Cells(1,1)).End(xlDown).Row, 11))”)
としましたが型が一致しませんと出ます
IsErrorで調べて見るとtrueだったので関数の値がおかしいみたいです
Mac版2011です
よろしくお願いします
0073デフォルトの名無しさん2015/06/26(金) 21:05:53.98ID:cSb2GBc3
>>72
そのまま並べると長くなりすぎてめんどくさいから最終行は変数に入れるぞ

LR = Range("A1").End(xlDown).Row
MsgBox Application.Evaluate("=SUMPRODUCT(1/COUNTIF(F1:F" & LR & ",F1:F" & LR & "))")
0074デフォルトの名無しさん2015/06/26(金) 21:25:36.54ID:lkYp4OYy
何個かプログラム作ったんだけどfunctionとか作ったり他のcallで呼び出したりした方が綺麗かな?
自分は事務の片手間に作ってるだけで他人の作ったコードを見ることもほとんどないし、綺麗なコードの書き方がよくわからないんですが、後から誰かが見るかもしれないから直したいけどどうすれば良いかよくわからないです。
vbaができる人もいないから見てもらうのも難しいし
0075デフォルトの名無しさん2015/06/26(金) 21:34:36.34ID:iHN0Ws68
>>74
Fuction やSubを分けてないとするなら、
現状ひとつのプログラムが何行くらいになってるの?
0076デフォルトの名無しさん2015/06/26(金) 21:35:01.18ID:cSb2GBc3
>>74
何度も同じことをやってるな、と思ったらSubやFunctionにまとめて整理する
他人に見せることを考えるなら変数名をわかりやすくしてコメントをたくさん書く
0077デフォルトの名無しさん2015/06/26(金) 22:09:18.72ID:0iRBLd8I
>>75
だいたい150〜250位だったと思います。
一つだけ突出して長いのがあって、それは3つに分けましたが各1000行くらいあったような気がします。
0078デフォルトの名無しさん2015/06/26(金) 22:23:25.89ID:iHN0Ws68
>>77
自分は今、37行ある関数を作って大いに反省して改善しようとしているところ。
短いにこしたことはないよ。

ひとつの機能しか持たないけれど、使いでのある短い関数をたくさん作る。
というのを目安にするといい。
0079デフォルトの名無しさん2015/06/26(金) 22:41:25.12ID:DWaV3Ceo
>>73
できました!
F”& 変数 &”で範囲のところに埋め込めたんですね
ありがとうございました!
0080デフォルトの名無しさん2015/06/26(金) 23:21:13.55ID:0iRBLd8I
>>76
コメントはなるべく入れるようにしていますが変数名がいつも悩みます
だいたい日本語のローマ字表記にしちゃうので余計に読みにくくなっている気がします

>>78
37行でも短くしようとしているんですか
頑張って短くしてみることにします
ありがとうございました
0081デフォルトの名無しさん2015/06/26(金) 23:26:36.18ID:iHN0Ws68
>>80
そのうち変数名はどうでもよくなってきて、関数名で工夫する必要がでてくると思う。
0082デフォルトの名無しさん2015/06/26(金) 23:36:57.04ID:3miAOepO
関数はWorksheetFunctionとか使ってるタイプなんじゃないの。話的に関数作った事ない様子だし。
エクセルについてくる標準の関数とかコードが冗長になる原因だし、くっそ面倒な上に動作が遅いから、
便利に使いたければ低レベルな所を覚える方がいい。
0083デフォルトの名無しさん2015/06/27(土) 00:22:09.79ID:XfU5iyL6
>>80
VBAは自分のセンスに合わないコードは全部クソ(読みづらい)だから
気にしてもどーしようもないし、自分本位でいいよ

前任のコードが読みづらいのは引き継ぐ側の宿命
書き直したって次の引継ぎが自分と同じ、もしくは似たような感覚持ってなきゃ
読みづらい言う
0084デフォルトの名無しさん2015/06/27(土) 08:03:04.79ID:wYPgFXnx
>>80
コメントは、俺は少なく抑える派だな。

ヘッダコメントや変数名見れば大体何やってるか分かる書き方をしておけば、基本ヘッダコメント以外はいらない。

そもそも慣れてればコード見れば大体何やってるかは分かる。だからコメントに残すのは、前にもちょっと書いたけど、
何やってるかではなくて、何の為にやっているかを残すようにしてる。

特に業務が大きく絡む部分は、データを取得した後の加工処理とかで、
何でそう加工するのか、どう使われるかなどで、設計書に載らない微細な部分は
後で見た人が分かるように残しているな。
0085デフォルトの名無しさん2015/06/27(土) 09:34:13.81ID:/1zL9aXo
>>84
理想的なコーティングを実践しているな、俺もそうなりてぇ
0086デフォルトの名無しさん2015/06/27(土) 11:01:25.31ID:dD9hP/ey
>>84
確かに何をしてるかより何でやってるかの方が有益だね。
自分で書いたのを後でみてはあ?ってなることがある。
0087デフォルトの名無しさん2015/06/27(土) 12:18:28.76ID:0PAQ0bek
別に選ぶ必用はないし、コメントは短い方がいいなんて事もない
目的と手段は両方書いた方がいい

それと「明日の自分は他人」を心がけること
0088デフォルトの名無しさん2015/06/27(土) 12:22:30.10ID:zOIiCC8H
明日の自分は進化した自分だろ
0089デフォルトの名無しさん2015/06/27(土) 18:02:11.16ID:hIbPEB69
>>87
初心者の内はその方がいいかもね。

でもコメントは注視するから有りすぎると何が大事で何がどうでもいいか訳が分からなくなる。

「0を変数〜に代入する」とか「ファイルを開く」とか「シートを選択する」とか書いてあると嫌がらせかと思うわ。
0090デフォルトの名無しさん2015/06/27(土) 18:38:52.27ID:6yK3ftLr
>>84とかはすくなくとも設計書と呼べるドキュメントがある前提だろ
必要なコメントはドキュメントあるかないかで全然ちがう
0091デフォルトの名無しさん2015/06/27(土) 21:17:46.78ID:wYPgFXnx
>>90
設計書と呼べるドキュメントが無ければまずそっちを作れよ
コメントに全部残すつもりか?

そんなことしたらある程度大きなプログラムになったとき、
大事な流れと末端の比較的重要じゃないところが混じって
全体の把握がしずらくなるだけだろ。

改修が入ってまた暫くして内容を忘れたころに改修を入れたり、
全然違う人が改修を掛けるとき、都度またコード追っかけて細かいコメントから
流れ把握しろって普段どんだけ効率の悪い仕事してるんだよ。
0092デフォルトの名無しさん2015/06/27(土) 21:25:30.16ID:Z1iyjs9Z
>>91
その文句を>>90に対して言うのはおかしい。
まあ、「しずらくなる」なんて書いてるところを見るとだいたいわかるけど。
0093デフォルトの名無しさん2015/06/27(土) 21:39:39.73ID:wYPgFXnx
>>92
まさか、「しづらい」と「しずらい」の入力ミスみたいな重箱のスミを突くようなことを言って
鬼の首取ったような気分になってるの?

>>90はドキュメントが無いことを想定して最初から要らないコメントだらけにしろと言ってる。
その前提が間違ってると言ってるんだから>>90に言わなくてどうするんだよ。
0094デフォルトの名無しさん2015/06/27(土) 21:51:46.73ID:pIBbDm3i
仕様書→What
設計書→How
コメント→Why

なぜコメントにWhyが必要なのか?
0095デフォルトの名無しさん2015/06/27(土) 22:04:43.52ID:hIbPEB69
>>94
何をやっているかはコードのまんまなんだからコード見るだけで見て取れるじゃない。

そもそも、何故やってるのか分からない人に基本設計書が作れるのか聞きたい。
0096デフォルトの名無しさん2015/06/27(土) 22:10:57.14ID:pIBbDm3i
>>95
いや、Whyが必要なのは分かる。
ただそれがあるべき場所は本来、設計書なのではないかという疑問。
0097デフォルトの名無しさん2015/06/27(土) 22:13:02.86ID:hIbPEB69
>>96
設計書の話をするのであれば、このスレではスレ違いになるから
もう一つの方のスレで受け付けようか。
0098デフォルトの名無しさん2015/06/27(土) 22:17:00.98ID:pIBbDm3i
>>97
多分答えは持ってないだろうから受け付けて貰わんでも構わんよw
0099デフォルトの名無しさん2015/06/27(土) 22:27:19.60ID:WGuYPvoX
>>98
あ、そ。じゃこっちも生暖かい目で見守ってるだけにしとくよ。
0100デフォルトの名無しさん2015/06/27(土) 22:42:37.03ID:Z1iyjs9Z
>>93
ひらがなで入力ミスってのは苦しくないか?漢字変換じゃあるまいし。

あんたの言う
>>90はドキュメントが無いことを想定して最初から要らないコメントだらけにしろと言ってる。」
ってのはかなり読み違えている。言葉を読み取れていない。
0101デフォルトの名無しさん2015/06/27(土) 22:48:01.30ID:0PAQ0bek
>>95
コードを解読するより日本語を読んだ方が早いだろ

なおコメント書いたやつの日本語が残念だった場合はアキラメロン
0102デフォルトの名無しさん2015/06/27(土) 23:49:35.98ID:p8TCnChh
作っていくと欲が出てアレもコレもとなって収集つかなくなる。
0103デフォルトの名無しさん2015/06/28(日) 01:22:35.92ID:IJkReOHB
>>93
>ドキュメントが無いことを想定して最初から要らないコメントだらけにしろと言ってる。
>その前提が間違ってると言ってる

たしかにドキュメントが無い事を想定してるし
ドキュメントがあれば不要なコメントがあることも否定しないが
お前が勝手に想像してる、まずドキュメント必須って環境がVBA利用の必須でも大半でもないと思うが

つか、いつからコメントの話になったんだか
0104デフォルトの名無しさん2015/07/02(木) 16:37:33.93ID:+J9P94nh
aaaという名前のシェイプがあるかないかを調べるにはどうすればいいですか?
0105デフォルトの名無しさん2015/07/02(木) 17:01:23.14ID:kS1tgVQA
全部のシェイプの名前を調べたらいいと思うよ
for each shape in activesheet.shapesみたいな感じで出来たと思うよ
0106デフォルトの名無しさん2015/07/02(木) 20:43:09.19ID:s7MbeDtD
2つ質問させてください

1:loggerクラスを作りメインメソッド内でのログは出力させるようにしたのですが
クラス内にログを出力させるためにはどのようなやり方がVBAでは一般的なのでしょうか

2:同様にクラス内部でエラーが起きた時にどのように上まであげるのか
exception含めエラーのハンドリング方法の典型的なやり方はどのような方法でしょうか

よろしくお願いします
0107デフォルトの名無しさん2015/07/02(木) 21:22:21.90ID:PhnYLcQw
>>106
クラス内にログを出力するのはちょっと厳しいかな。

クラス内にログを出力する処理をコードに記述するのが一般的だと思う。

.Netで言うExceptionほど情報は拾えないので、メソッド名などは外部から引数で設定したりする。

また、どう言った流れでエラーになったかを捉えるために
エラー時以外にも関数を呼び出した時や、実行したSQLをログに出力したりもする。

その辺の取り決めは、最初に共通化して決めておく。

そんなところかな。
0108デフォルトの名無しさん2015/07/02(木) 21:44:23.79ID:s7MbeDtD
>>107
ありがとうございます。また1文目の指摘はごもっともです。失礼しました。

loggerクラスをクラス内で実体化して、メインメソッドで使っているものに対して
追記していくようなイメージになりますよね。

エラーはErrer On Goto というもので最上位で拾っているものが多いようですね。
内部でのエラーはログに出しておいて、最上位でハンドリングして終了させる感じですかね
0109デフォルトの名無しさん2015/07/02(木) 23:16:07.57ID:PhnYLcQw
>>108
その前にLoggerクラスだっけ?本当にクラスで作った方がいいのか、
標準モジュールで作った方がいいのかの精査が入ると思う。

最上位でハンドリングして終了するかどうかはその時の処理や、決め事次第なので何とも言えない。

ただ、ログの出力と言う論点から言うと、エラーが発生した時のログのみ出してるところと、
メソッドを終了した時にもログを出してるところ、もちろん後者はメソッド開始のときにもログを出してるんだけど、

それを実行時のログレベルで何を出すかを管理してたりとか、
VBAなら結構仕事場によりけりでまちまちだと思うよ。
0110デフォルトの名無しさん2015/07/03(金) 12:36:10.39ID:xJ8vVgP9
「クラス内にログを出力する」ってなあに?
0111デフォルトの名無しさん2015/07/03(金) 19:29:04.77ID:Z91OQLPV
>>110
マンコの中に精子を中だしする、という文と文法構造は同じですよ
0112デフォルトの名無しさん2015/07/03(金) 22:17:58.92ID:eeinSX8C
つまりVBAは中出し禁止の非人道的な言語なのか
0113デフォルトの名無しさん2015/07/03(金) 23:00:37.19ID:rycGCzjv
>>112
一生中出しすることのない君にとっては
限りなく優しい言語だよ
0114デフォルトの名無しさん2015/07/04(土) 08:14:08.92ID:XesN+FYu
ビンボー夫婦の中出し自慢やw
0115デフォルトの名無しさん2015/07/04(土) 10:36:40.15ID:n+Lf90L5
童貞の宝石箱やー!
0116デフォルトの名無しさん2015/07/08(水) 20:34:13.84ID:nv9kJ3sf
涙拭けよwww
笑林寺音頭www

応募26団体を発表 開催都市提案種目/東京五輪
http://headlines.yahoo.co.jp/hl?a=20150612-00000521-sanspo-spo

東京五輪の追加競技、野球・空手など8団体に絞り込み
□2次選考に進んだ競技
野球・ソフトボール、ボウリング、空手、ローラースポーツ、スポーツクライミング、スカッシュ、サーフィン、太極拳
■見送られた競技
エアスポーツ、アメリカンフットボール、ビリヤード、ペタンク、ブリッジ、チェス、ダンススポーツ、フロアボール、フライングディスク、コーフボール、ネットボール、オリエンテーリング、ポロ、ラケットボール、相撲、綱引き、水中スポーツ、水上スキー・ウェークボード
http://www.asahi.com/articles/ASH6Q3CTTH6QUTQP008.html

●全く五輪と無関係な朝鮮盆踊りwww

坊さんコス笑林寺www

     ∩___∩     /゙ミヽ、,,___,,/゙ヽ
     | 丿     ヽ    i ノ       `ヽ'
    /  ○   ○ |    / `(○)  (○)´i、  先生助けてっ!、
    | U  ( _●_)  ミ  彡,U ミ(__,▼_)彡ミ   腹叩き大好き豚キムチ卍クソババアちゃんが息をしてないのっっ!!
   彡、    |∪| ,,/   ,へ、,   |∪|  /゙
   /  ヽ  ヽノ  ヾ_,,..,,,,_ /  '  ヽノ `/´ ヽ
   |      ヽ  ./ (^○^) `ヽーっ   /    |
   │   ヾ    ヾl   ⊃ ⌒_つ ソ      │
   │    \__`'ー-⊃⊂'''''"__,,,ノ   |
0117デフォルトの名無しさん2015/07/11(土) 01:45:41.73ID:JfxrN9Uu
シートの使っている範囲だけをコピーしたいのですが
forでちまちままわす以外でいい方法はありますでしょうか
0118デフォルトの名無しさん2015/07/11(土) 01:50:57.59ID:U5u1oSjR
>>117
それは、何らかのデータが入っているセルだけをコピーしたい、という意味だろうか?
0119デフォルトの名無しさん2015/07/11(土) 02:06:15.75ID:dEARxAiT
>>117
カレントリージョンが使える


かもしれない。
0120デフォルトの名無しさん2015/07/11(土) 03:00:00.09ID:29kHCvLh
かれんとりーじょん、上下左右の除外する行数や列数を指定できると
超使い勝手いいのにな

現状、無理やり Offset と Resize で変更してるけど他ある?
http://www.dotup.org/uploda/www.dotup.org409978.jpg
0121デフォルトの名無しさん2015/07/11(土) 03:56:37.68ID:2Idl6xHq
こんなんどないや
Sub ta2()
Dim St As Range
Set St = Range("C6").CurrentRegion
Range(St.Cells(2, 2), St.Cells(St.Count)).Select
End Sub
0122デフォルトの名無しさん2015/07/11(土) 14:16:23.70ID:a7pAoN16
分かる方教えてください。

Q エクセルのセルに入力されている「数式」ではなく参照している「値」をIEの検索窓に入力するにはどうしたらいいでしょうか?

エクセルのデータベースからIEの検索窓に入力するVBAは完成してるんですが、
値ではなく数式が入力されてしまいます。

2つのシートがあり
一つはデータベースシートがあります。
それとは別にそのデータベースをvlookupで参照している管理シートがあります。
データベースの任意のデータにフラグを立てると管理シートにvlookupで値が参照されるようになっています。

そこで・・・
vlookupのシートのセルの数式ではなく値をIEの検索窓に入力したいのですが、
vlookup等の数式が入力されてしまいます。

数式ではなく値を検索窓に投げるにはどうしたらいいでしょうか?


分かりにくいかと思いますが簡単に別の例をあげると
A1セルに数字の5が入っていたとして、B1セルに「=A1 」とするとB1セルが5になると思いますが、
そのB1セルの数式ではなく、値の5をIEの検索窓に投げたいんです。
0123デフォルトの名無しさん2015/07/11(土) 14:26:39.89ID:3/T9vOUP
>>122
Range("A1").Text
0124デフォルトの名無しさん2015/07/11(土) 15:25:07.98ID:a7pAoN16
>>123
それも考えましたがそれだと数式を値に変換して置き換えることはできますが
数式が消えてしまいます。

Range("B1") = Range("A1")
みたいな感じで
別セルに置き換える感じも考えましたが
できれば置き換えすることなく、
セルの内容はそのままで、数式を値でIEの検索窓に投げたいんですけど
こういうのは難しいんですかね・・・?
0125デフォルトの名無しさん2015/07/11(土) 15:42:14.07ID:a7pAoN16
>>123
ごめん 勘違いしてました。
できました!

ありがとうございます!
>>124はなしで!
助かりました!
0126デフォルトの名無しさん2015/07/14(火) 01:57:29.96ID:YJJAAwcF
>>121
そっちの方がシンプルだな
thx
0127デフォルトの名無しさん2015/07/16(木) 16:17:02.81ID:+rTlRoXo
Controls.Addでフォームに追加したコントロールを
編集しようとデザインモードで見ると何もないんですが
0128デフォルトの名無しさん2015/07/16(木) 18:48:38.24ID:WG4jVMdb
再現出来るようにコードぷりーず
0129デフォルトの名無しさん2015/07/16(木) 19:26:53.98ID:mE2ajRcQ
>>127
釣りだと思うけどマジレスしといてやる

実行時に追加したフォームは
デザイン時は存在してないんだからデザインモードに出るわけがない
0130デフォルトの名無しさん2015/07/16(木) 20:52:53.17ID:FDPV8gUS
>>127
サイズとかvisibleの問題じゃねーの
0131デフォルトの名無しさん2015/07/16(木) 21:30:33.77ID:3z7lF38P
>>127
そりゃ、メモリ上でのみ動的に追加したコントロールが、デザインモード
で出てくるわけがない。こんなのVBA以外でも常識中の常識だぞ。
0132デフォルトの名無しさん2015/07/17(金) 01:44:05.43ID:rjvTyFpH
こんばんは。
htmlのソースの取り込みについて質問です。

・インターネット上のhtmlソースをVBAで読み込み、Sheet1のCells(1,1)から貼り付けたい。
(例としてhttp://www.google.co.jp)
・ソース内で改行がある場合、セルも一行下がる。
要はセル一行にhtmlソース一行が入るようにしたい。
・絵にするとこんな感じ。
ttp://s1.gazo.cc/up/142773.jpg

以上の条件を満たすプログラムを誰か教えてください・・・。
0133デフォルトの名無しさん2015/07/17(金) 08:00:54.57ID:syB7WThG
>>132
あなたは本当にそれがやりたいのですか?
もう一度、三日三晩シコりながら考えてみてはどうでしょうか?
きっとチンコが腫れあがりますよ。
0134デフォルトの名無しさん2015/07/17(金) 08:59:14.16ID:hnpkDHc0
>>132
今どきのHTMLのソースを取り込むとか寝言は寝てから言えよカス。
やってることが全く意味のない理解不能な行為だ。なんの意味もない。

消えろ。
0135デフォルトの名無しさん2015/07/17(金) 20:04:14.87ID:McVDGjPp
>>132
俺はやり方知らんが、「エクセル html ソースコード 読み込み」で検索したらすぐ出てきた。
01361322015/07/17(金) 20:38:31.06ID:wJy3znBL
>134
ごめん、本当の目的は楽天で特定の商品を検索して、価格一覧を取得できるようにしたいです・・・。
ttp://search.rakuten.co.jp/search/mall/141JR+ettinger/?f=1&s=2&grp=product&myButton.x=0&myButton.y=0

こんな感じに検索して、どこのお店が一番安いかとかをエクセルにまとめたかったのです。



>135
ありがとうございます。もう一回検索してみます。
0137デフォルトの名無しさん2015/07/17(金) 21:13:12.67ID:FH0hTxR4
>>136
https://webservice.rakuten.co.jp/document/
こういうの使うってのは思いつかないか?
スクレイピングなんてアナログなやり方で取ろうってのはちょっと考えもの
だわ。
0138デフォルトの名無しさん2015/07/17(金) 21:13:14.89ID:McVDGjPp
>>136
ホームページ自体をエクセルシートとして取得する方法があったはず。
だいぶ昔にやっただけだから忘れたけど、確かWorkbooks.Open(URL)で取得出来るはず。
0139デフォルトの名無しさん2015/07/19(日) 18:40:13.42ID:dyuo8KOo
例えばセルのC4に入力された時にどうこうするってなら、そのワークシートモジュールで

If Target.Address = "$C$4" Then

End If

ってやりますけど、B列の何処かに入力された時にその横に…っ時はどうすればいいんでしょうか?
B2に入力されたならC2に、B10入力されたならC10に…という風にしたいのですが。
0140デフォルトの名無しさん2015/07/19(日) 18:42:41.70ID:r330jZtM
>>139
IF Target.Column = 2 then Target.offset(0,1) = "入力"
0141デフォルトの名無しさん2015/07/19(日) 18:49:32.07ID:dyuo8KOo
>>140
感謝!
0142デフォルトの名無しさん2015/08/01(土) 09:23:45.44ID:V6/EU5o1
PDF化された表をEXCELに戻すにはどうすればいいでしょうか
0143デフォルトの名無しさん2015/08/01(土) 09:32:33.19ID:s1F9cg8d
>>142
http://smallpdf.com/jp/pdf-to-excel
0144デフォルトの名無しさん2015/08/02(日) 21:54:10.52ID:cv5KeAGa
OWCのグラフで値が空のとこを非表示にするにはどうしたらいいですか?
0145デフォルトの名無しさん2015/08/13(木) 13:02:28.32ID:hMK01Zqa
ExcelVBAでweb情報とりこむのってIEが多いのは、やはりIEとExcelの親和性が高いの?
Chromeじゃ出来ない事結構あるのかね?IE使ってない人多くなっていくし
0146デフォルトの名無しさん2015/08/13(木) 14:18:02.34ID:YBCyuJGa
>>145
仕事現場じゃIEの天下だが?
0147デフォルトの名無しさん2015/08/13(木) 14:43:14.71ID:hMK01Zqa
>>146
どこの田舎企業で働いてるの?
0148デフォルトの名無しさん2015/08/13(木) 14:52:16.16ID:8BLKmqKJ
うちみたいに資本金数百億、従業員数万人の会社だと逆にシステム管理者が死ぬからIE以外は入れさせてくれんがな
まあVBAも使用禁止だけど
0149デフォルトの名無しさん2015/08/13(木) 16:11:43.20ID:96XWMJC8
>>147
ひょっとして零細なの?
0150デフォルトの名無しさん2015/08/13(木) 17:29:24.14ID:/gE7VvcA
>>148
VBAなしで日常業務やるの?それともVisual Studioは入れてくれるとか?
0151デフォルトの名無しさん2015/08/13(木) 20:38:39.53ID:vpVkNfs+
全地域 全業界 従業員数
http://www.ts-hikaku.com/clist/a0/v1s22t0p.html

Yahoo!Japanファイナンス 資本金: 株式ランキング
http://info.finance.yahoo.co.jp/ranking/?kd=53&;


日本通運、キヤノン、セコム、ニチイ学館、豊田自動織機、アイシン精機、綜合警備保障
ダイハツ工業、日野自動車、セイコーエプソン、ヤマダ電機、富士電機、山九、清水建設、クボタ、ヤマハ発動機

以上16社が資本金1000億円未満・100億円以上かつ従業員数一万人以上の企業。
「その資本金でその従業員数とか特定できんだろw」と思ったけど、思っていたより多かったわ。
0152デフォルトの名無しさん2015/08/15(土) 12:26:39.18ID:QUPnPtIv
社内で管理簿登録されていないvbaプログラムは使用禁止なところもあるだろうさ。
ただ、個人的にはそれは厳しすぎね?とは思うけど。
0153デフォルトの名無しさん2015/08/15(土) 12:32:06.29ID:fL/PzS3/
個人スキルは重視しないという考えなんだろう。
0154デフォルトの名無しさん2015/08/15(土) 17:56:57.96ID:HxCw3c0C
禁止って言われたから禁止するの?
死ねって言われたら死ぬの?
プロとしてプライド無さすぎだろ。
0155デフォルトの名無しさん2015/08/15(土) 18:02:33.07ID:UUBlauo7
>>154
別に VBA のプロじゃねーし
0156デフォルトの名無しさん2015/08/15(土) 18:17:49.35ID:p/7d84Nq
そもそも従業員が一万人居たら、普通は数百人単位で分けて部とか所毎にSEいるだろうから、
社全体の従業員数は関係ないだろっていう。

VBAスレたまに「お前絶対働いた事無いだろw」って言いたくなる大ボラ吹きが湧くよな。
0157デフォルトの名無しさん2015/08/16(日) 01:48:34.98ID:lqZOWi2O
>>148
レベル低い企業だね
0158デフォルトの名無しさん2015/08/16(日) 06:20:00.24ID:JiBgeW7F
>>157
大企業はそうならざるをえない。
0159デフォルトの名無しさん2015/08/16(日) 06:28:44.99ID:ycRHPSHX
詳細設計書とかマニュアルを作るせいで技術者の要領を殺し、レベルを上げることを許さない。
0160デフォルトの名無しさん2015/08/16(日) 06:32:00.29ID:JiBgeW7F
人が多くなると、全体のレベルが下がる。

大企業の法則。
0161デフォルトの名無しさん2015/08/16(日) 23:46:30.53ID:IDu141Aa
将軍ばっか集めても軍隊って成立しないのよね
一人の将軍の下には数千の歩兵が必用

企業でも同じ
0162デフォルトの名無しさん2015/08/17(月) 23:45:02.86ID:bNJ12ZXs
企業でも同じ
あほすぎるwww
0163デフォルトの名無しさん2015/08/18(火) 00:11:21.76ID:f0QuXHMi
V:ヴぁか
B:ばっかの
A:集まり
0164デフォルトの名無しさん2015/08/21(金) 07:13:15.70ID:l+0FmGcC
いろんな部署の人間がいろんなプラットフォームを使ってて
それで全体がうまくまとまるなら縛る必要ないな
0165デフォルトの名無しさん2015/08/22(土) 18:22:38.08ID:cvDmezAQ
デスクトップにある特定の文字列が入ったファイルを開くコードを教えてください。
0166デフォルトの名無しさん2015/08/22(土) 18:36:26.91ID:BHNfM2Fk
まぁとっても抽象的❤️
0167デフォルトの名無しさん2015/08/23(日) 06:16:53.36ID:ZVnvkEuw
ファイルってエクセルファイル?
ファイル名が確定してるならディレクトリも決まってるし大したことないけど,特定の文字列以外が変わる場合があるならディレクトリ内のファイルを一覧で取得してから適合するファイル名を検索してって感じかな
0168デフォルトの名無しさん2015/08/23(日) 09:45:03.48ID:Kqh6eoEY
>>167
「月次売上」のあとにyyyymmddとなっています。
この月次売上の部分のみ認識して開き、中のデータを別の集計表に
コピーしたいのです。
0169デフォルトの名無しさん2015/08/23(日) 10:38:07.80ID:Du+XoGVg
何だ
食指が動かんな
お前ら、頼むわ
0170デフォルトの名無しさん2015/08/23(日) 11:56:37.68ID:HWLa8qp/
>>168
FSOで保存されてるフォルダのFilesを取得してファイル名が「月次売上*」でマッチしたもののファイルパスをWorkbooks.Openすればいいんじゃないの。
0171デフォルトの名無しさん2015/08/23(日) 11:56:46.93ID:dST3+uhn
(1) デスクトップフォルダを指定する

特殊フォルダを取得する
http://officetanaka.net/excel/vba/tips/tips107.htm

(2)そこで指定のファイルの一覧を取得する

ファイルの一覧を取得する
http://officetanaka.net/excel/vba/file/file07.htm

(3) 検索しつつ、それが対象のファイルなら好きな処理をする


コレでいいでしょ
0172デフォルトの名無しさん2015/09/04(金) 19:52:29.94ID:UBJpqbQu
特定の名前のjpgファイルを探しだしてアップロードすることは可能ですか
0173デフォルトの名無しさん2015/09/04(金) 23:09:03.79ID:kyihAZh5
可能です
0174デフォルトの名無しさん2015/09/05(土) 00:42:50.29ID:zbH+HliE
excelがどこに絡むのかがわからない
0175デフォルトの名無しさん2015/09/05(土) 01:35:28.25ID:fWJB10zn
VBAならできる
0176デフォルトの名無しさん2015/09/05(土) 12:59:48.67ID:27LdtAAJ
>>172
excelで作る必要性が全くないね
0177デフォルトの名無しさん2015/09/05(土) 17:54:33.70ID:AhcKUtwZ
>>172
Googleで画像検索すればいいと思う
あとはGoogleDriveにアップロードする
簡単
0178デフォルトの名無しさん2015/09/05(土) 23:20:16.13ID:zbH+HliE
Exploreで複数のファイルをCtrl+Cした後に
Excelのシート上でパス+ファイル名を貼り付けるマクロをどなたか作成宜しくお願いします
0179デフォルトの名無しさん2015/09/06(日) 00:11:58.38ID:aG8A0DfZ
>>178
それぐらいなら任せとけ
0180デフォルトの名無しさん2015/09/06(日) 02:26:50.72ID:QNZbRBDg
嫌です
0181デフォルトの名無しさん2015/09/06(日) 07:19:16.95ID:8yRgk1H4
excelがどこに絡むのかがわからない
0182デフォルトの名無しさん2015/09/06(日) 10:31:01.32ID:ZpREkUvS
クリップボードにはファイルのリストが入ってて
ファイル名のリストがほしいってことだろ

コマンドプロンプトで ↓ やるのを覚えたほうがマシ
dir /b > list.txt
0183デフォルトの名無しさん2015/09/06(日) 14:11:28.24ID:Ni3aZmcx
excelと絡まりたい
0184デフォルトの名無しさん2015/09/06(日) 16:24:47.90ID:tXhFn+ho
Win32APIを使うと10分ぐらいだけど
ExcelVBAでやろうとするとやや面倒な部類かな
いやそうでもないか
0185デフォルトの名無しさん2015/09/06(日) 18:15:02.28ID:Ir/JiN9v
>>181
シートに貼るところだろ
0186デフォルトの名無しさん2015/09/06(日) 22:37:16.01ID:BIq/lpvc
VBAで編集中のファイルを途中段階のある時点で複製を別名保存し処理を続けたいのですが
単に別名保存すると開いているファイルが別名になってしまいます。
この場合元ファイルを呼ばなければその後の処理が別名ファイルにされるようになりますこれでは困るため
開いているファイルはそのままに自分の複製を別名で保存したい場合はどう書けばいいのでしょうか?
0187デフォルトの名無しさん2015/09/06(日) 22:45:54.30ID:cd39hwxL
ブックの複製を作成 → 複製したブックを好きな名前で保存して閉じる → もとのブックは前のままの名前と状態
ってのができればいいね
01881862015/09/06(日) 23:05:37.24ID:BIq/lpvc
スーパー事故解決しました!

「SaveCopyAs」 でできるようで

Sub テスト()

ActiveWorkbook.SaveCopyAs Filename:="C:\テスト" & Format(Date, "yyyymmdd") & ".xls"

End Sub

↑こう書けば日付時刻を追記して別名保存できます!!

てかVBAのスレって2つあるの?!w
01891862015/09/06(日) 23:10:24.49ID:BIq/lpvc
おまけ
Date, "yyyymmdd"

Date, "yyyymmddss"
こうすれば秒も記載されるので毎秒保存が可能に!ww

Sub テスト()

ActiveWorkbook.SaveCopyAs Filename:="C:\テスト" & Format(Date, "yyyymmddss") & ".xls"

End Sub

注意点としては".xls"はお使いのシートの拡張子にする必要が有ります。
01901862015/09/06(日) 23:20:28.89ID:BIq/lpvc
あえてサンプルコードは書かないが配列にして独自の番号をファイル名に振れば処理の続く限り無限に複製を保存することが可能?
01911862015/09/06(日) 23:46:39.37ID:BIq/lpvc
超高速で大量の複製ファイルが生成される。これはもはやウイルスですね。エイジェントスミスを思い出しましたw
http://www.heyuguys.co.uk/images/2011/06/Agent-Smith.jpg
0192デフォルトの名無しさん2015/09/07(月) 16:09:48.26ID:ipfcnQUP
>>186
作り方は自由だけれども、
マクロがあるブックと別名で保存されては困るブックを
別のファイルにしてもいいのでは?

マクロ実行時に自己のバックアップを取る仕様も
まぁアリというばアリですけど。。。
0193デフォルトの名無しさん2015/09/07(月) 21:04:51.95ID:W99FKy8k
ブックが子ブックを作り子ブックが孫ブックを作り孫ブックが曾孫ブックを作り・・・∞
0194デフォルトの名無しさん2015/09/09(水) 13:15:34.54ID:jmO3TJP8
ON ERROR GOTO xxでxxに飛んだあと
どんなエラーが発生したかによってそれぞれ処理をしたいのですが
その方法はどうしますか?
0195デフォルトの名無しさん2015/09/09(水) 13:25:46.11ID:4sL8a6ZM
プログラムします
0196デフォルトの名無しさん2015/09/09(水) 13:43:27.11ID:jmO3TJP8
どうプログラムしますか?
0197デフォルトの名無しさん2015/09/09(水) 13:43:31.07ID:b8GIKhZ4
>>194
ググれタコ
0198デフォルトの名無しさん2015/09/09(水) 13:48:38.84ID:4sL8a6ZM
楽しくプログラムします
0199デフォルトの名無しさん2015/09/09(水) 14:11:04.56ID:jmO3TJP8
>>198
あなたはわたしをおちょくっているのですか?
0200デフォルトの名無しさん2015/09/09(水) 14:22:03.62ID:4sL8a6ZM
あなたはおちょくられていますか
0201デフォルトの名無しさん2015/09/09(水) 14:30:43.82ID:jmO3TJP8
わたしをあまり怒らせないほうがいいぞ。
当分われわれ二人はこのスレに居つくんだからな。
0202デフォルトの名無しさん2015/09/09(水) 14:49:10.85ID:gDta/uVC
| |д・) ソォーッ…
0203デフォルトの名無しさん2015/09/09(水) 15:34:57.30ID:p04zzSzW
>>194
Err
0204デフォルトの名無しさん2015/09/09(水) 16:11:12.71ID:JKr9Wstl
>>194
エラー処理のやり方は、
http://officetanaka.net/excel/vba/statement/Resume.htm

実行時エラーの一覧は、
http://officetanaka.net/Excel/vba/error/execution_error/index.htm
0205デフォルトの名無しさん2015/09/09(水) 16:56:50.32ID:jmO3TJP8
>>203-204
ありがとうございます。
この>>204下のエラー番号の表ってこのサイト見ずに自分のPC内だけで完結できないかしらね?
オブジェクトブラウザに書いてるとか。
0206デフォルトの名無しさん2015/09/09(水) 17:03:34.47ID:JKr9Wstl
>>205
完結の意味がよくわからないけど、オブジェクトブラウザで見る範囲にはないと思うよ。

こんな感じで自作するしかないと思う。
https://support.microsoft.com/ja-jp/kb/146864
0207デフォルトの名無しさん2015/09/09(水) 17:05:00.60ID:JKr9Wstl
あ、こんな感じというのは、
> Public Const ERR_DEVICEUNAVAILABLE = 68
> Public Const ERR_BADFILENAMEORNUMBER = 52
> Public Const ERR_PATHDOESNOTEXIST = 76
> Public Const ERR_BADFILEMODE = 54
みたいに自分で定義するってこと。
0208デフォルトの名無しさん2015/09/09(水) 19:03:42.51ID:nekRxL7K
VBならErrorToString なんて便利なもんがあるんだけどねえ
0209デフォルトの名無しさん2015/09/09(水) 19:23:36.06ID:604Cwjpa
ErrorToString()に相当するものなら、Error()関数があるじゃん(※Errorステートメントじゃない方)
0210デフォルトの名無しさん2015/09/09(水) 20:24:09.31ID:X10C1ufT
>>208
それ Error( ) 関数より便利なん?
0211デフォルトの名無しさん2015/09/11(金) 07:11:03.47ID:FH5ZvDtc
ユーザーフォーム上にwebbrowser1を配置したのですが、その枠内に表示した
ウェブページを画像にしてアクティブシートに貼り付ける方法が有れば教えて下さい。
ユーザーフォームの位置を取得してスクリーンショットをトリミングして等とやって
みたのですがうまくいかなくて
0212デフォルトの名無しさん2015/09/11(金) 12:11:40.35ID:7m9SebXZ
SendKeysでAlt+PrintScreen送りつけるとか?
0213デフォルトの名無しさん2015/09/11(金) 12:59:51.44ID:LxNrmawz
>>211
GetWindowDC
CreateCompatibleDC
CreateCompatibleBitmap
SelectObject
BitBlt
SetClipboardDataを使ってクリップボードにコピーして
ActiveCell.PasteSpecialで貼り付けられないかな
0214デフォルトの名無しさん2015/09/12(土) 05:10:31.32ID:dQMUA4G2
211です。考えてた事がすっきり整理出来た感じです。
頂いたアドバイスを参考にしてコード書いてみます。
本当にありがとうございました。
0215デフォルトの名無しさん2015/09/13(日) 00:26:15.78ID:f7snMU36
イミディエイトウインドは便利ですが
ここで変数やFor文を使えるようにできませんか?
0216デフォルトの名無しさん2015/09/13(日) 00:29:38.04ID:G9dQlaUz
>>215
マルチはダメですよ
0217デフォルトの名無しさん2015/09/13(日) 04:20:00.29ID:gQnlFA4p
>>215
普通に使えるんだが
0218デフォルトの名無しさん2015/09/13(日) 14:30:53.21ID:uDM41CsS
>>217
自分も知らなかった。1行に書くと、使えるんだね。ありがとう。
for i = 1 to 5:debug.print i:next i
0219デフォルトの名無しさん2015/09/13(日) 18:55:46.40ID:nhNM0pAX
単にDebug.Printの出力枠だと思ってた人もここにいるよ
0220デフォルトの名無しさん2015/09/13(日) 23:20:47.36ID:nQBKdNbg
debugは必用ない
ついでに最後の i も必用ない
for i = 1 to 5:?i:next

俺は ?range("aa1").column みたいな感じで電卓がわりに使ったりしてる
適当なキーワード打ってF1押せばヘルプへのショートカットになる
0221デフォルトの名無しさん2015/09/14(月) 01:33:32.22ID:h9CenDqd
将来vbaをvisual studioで開発実行出来るように成りますか?
0222デフォルトの名無しさん2015/09/14(月) 08:48:07.90ID:GfOr66Lg
>>221
なりません
0223デフォルトの名無しさん2015/09/14(月) 21:30:26.31ID:wEl1Y90n
下位互換について、vba歴約1ヶ月の技術者でもなんでもないしがないリーマンです

2013で業務報告書的なものに独学(参考書&ぐぐり)で以下のvbaを仕込みました
@エクセルからワード起動し、コピー&ペーストで文書作成
A同book内でfor…if…で別シートの一覧表に業務報告書の内容を一部転記

が、作成後に別事務所では2007、2010等が現役であることが判明
私の無知による後の祭ではありますが、参考書が2000/2003/2007/2013対応などと謳っていることから命令文はさほど変わらないと推測し、
下位がインストールされている事務所のPCで2013で書いた命令分をコピー&ペーストすれば下位ソフトで動くようになったりますでしょうか?
0224デフォルトの名無しさん2015/09/14(月) 22:20:13.44ID:37XjVVHj
>>223
動きます
0225デフォルトの名無しさん2015/09/14(月) 22:31:29.64ID:XpNdN7EG
>>223
下位から上位は比較的問題が起こりにくいけど、
上位から下位はよくよくテストしないとダメだろうね。
予期せぬ問題が発生することがある。

例えばシートの行数が65536行に減ったり、セル内の文字列が場合によって256文字制限が掛かったり。
0226デフォルトの名無しさん2015/09/15(火) 01:34:51.81ID:JwuMU5pI
しがないリーマンです
早々の回答かたじけないです
>>224
暗闇に一筋の光が…
>>225
2013を覚醒させるほどの命令はしてませんので大丈夫ぽいですが、
過信せずデバグりたいと思います
next
0227デフォルトの名無しさん2015/09/15(火) 22:56:57.09ID:cXCl5+xg
教えてください。
オートシェイプ2つをグループ化し、縦横比を固定にしたいのです。

shpN(1)、shpN(2)にオートシェイプのnameが入っています。
ActiveSheet.Shapes.Range(shpN).group  ・・・グループ化できました。

Selection.LockAspectRatio = True ・・・エラー
Selection.ShapeRange.LockAspectRatio = True ・・・エラー
(なんとか).LockAspectRatio = True  だと思うのですが。
0228デフォルトの名無しさん2015/09/15(火) 23:17:43.49ID:KQEQzEy1
>>227
〜 .LockAspectRatio = msoTrue
0229デフォルトの名無しさん2015/09/15(火) 23:33:41.39ID:KQEQzEy1
>>227
With ActiveSheet.Shapes.Range(shpN)
  .Group
  .LockAspectRatio = msoTrue
End With
0230デフォルトの名無しさん2015/09/15(火) 23:38:11.19ID:cXCl5+xg
>>228、229
レスありがとう。どちらもやってみたんだけど、エラーになるんです。
(グループ化直後、selectionされてない?のかな。)
で、以下で自己解決しました。

For Each gp In ActiveSheet.Shapes
If gp.Type = msoGroup Then
gp.LockAspectRatio = msoTrue
End If
Next
0231デフォルトの名無しさん2015/09/17(木) 03:28:54.63ID:lZOvbfrn
= イコールを入力することがおおいですがシフトを押さなくても一発で入力する最も合理的な方法は何ですか?
0232デフォルトの名無しさん2015/09/17(木) 03:58:01.75ID:pl8Hj06W
よく使うイコールとカッコを一発入力
http://i.imgur.com/FrbauP0.jpg
0233デフォルトの名無しさん2015/09/17(木) 08:45:59.29ID:negR8wPL
普通の半角英文字入力モードのときに
登録しておいた文章を簡単に入力する方法はありますか?

たとえば
tを押したときに"Thank you very much for"
bを押したときに"Best Regards, (my name)"
など20個以上の登録しておきたい文章があるんです。
0234デフォルトの名無しさん2015/09/17(木) 08:47:10.12ID:negR8wPL
あと英文のとき大文字をShift押すのをもっと簡単にする方法はないですか?
タッチタイプができるので大文字のところだけ0.1秒くらいタイミングが遅れて困っているんです。
0235デフォルトの名無しさん2015/09/17(木) 10:20:20.73ID:GcR8xHde
>>232
yenマークは?
0236デフォルトの名無しさん2015/09/17(木) 11:20:58.68ID:1vkd1c9N
バックスラッシュはシフトキーいらないだろ
0237デフォルトの名無しさん2015/09/17(木) 11:49:58.02ID:kipa1zpm
どうVBAに関係するんだよ。スレ違いの話続けんなドアホ
0238デフォルトの名無しさん2015/09/17(木) 11:52:52.51ID:Y9+umF8P
そのテンキー、コンマがあれば完璧だったのに
0239デフォルトの名無しさん2015/09/17(木) 12:39:55.33ID:+3F+8mBw
コンマがあれば何もコ(ン)マらなかったのに!
0240デフォルトの名無しさん2015/09/17(木) 13:19:44.18ID:1vkd1c9N
     \       ヽ           |        /        /
          \      ヽ               /      /
‐、、         殺 伐 と し た ス レ に 鳥 取 県 が ! !      _,,−''
  `−、、                  __/\            _,,−''
      `−、、              _|    `〜┐         _,,−''
                      _ノ       ∫
                  _,.〜’        /
───────‐     ,「~             ノ    ───────‐
               ,/              ` ̄7
                |     島 根 県     /
           _,,−'   ~`⌒^7            /    `−、、
        _,,−''            丿            \,      `−、、
 ,'´\           /  _7       /`⌒ーへ_,._⊃         /`i
 !   \       _,,-┐    \    _,.,ノ          r‐-、、      /   !
 ゙、   `ー--<´   /      L. ,〜’             ゙、  >−一'′   ,'
  y'  U      `ヽ/     /            ヽ      ヽ '´     U   イ
                                ____
         /      __        |       \____\
    ___/__ / ̄    ____|____ \ \____\
       //ヽ   /___         /|\       \ \____\
     / / ヽ  / /__     /  |  \       \_______
   /  /   / /   /     /    |    \          |    \
  /   /  / /  _/   __/      |      \__      |     \  ̄―_
0241デフォルトの名無しさん2015/09/17(木) 14:28:57.33ID:zQMTeEfi
オートコレクト使えば?
0242デフォルトの名無しさん2015/09/17(木) 19:21:57.39ID:ZEBJNCr9
>>238
Excel だとコンマよりタブの方がよく使う
0243デフォルトの名無しさん2015/09/17(木) 21:27:50.77ID:nm8tfio5
>>231
キーボードの配列によっては=はshift押さないものもある
これもまた使ってるキーボード次第だけど、10キーの+をビターンと押してみるとか
0244デフォルトの名無しさん2015/09/18(金) 02:08:42.21ID:OwYf98or
Excel2007なんですが、ListViewで20行表示されるようになってて、データは50あります。
40行目を変更して、再度データを読み込みます。そうすると、最初の1から20までを
表示するのですが、40行目を表示させることはできないんでしょうか?。
できれば、40行目を変更する時点で一番上に表示されてる、例えば26行目から
表示させることとか、できないでしょうか。
0245デフォルトの名無しさん2015/09/18(金) 03:58:21.92ID:jaUEyIYl
VB6のコントロール「Microsoft ListView Control 6.0」を使う場合のことかな?
指定の項目を画面に表示させたいならEnsureVisible()を使う

Private Sub CommandButton1_Click()
With ListView1
  With .ListItems(40)
    Call .EnsureVisible
    '.Selected = True
  End With
  'Call .SelectedItem.EnsureVisible
End With
End Sub
02462442015/09/18(金) 18:55:44.91ID:JBxUncF1
>>245
やってみました。できました!。ありがとうございました。
ググっていろいろやってみて、どうしてもわからず
ここに質問しました。よかったー。どうもでした。
0247デフォルトの名無しさん2015/09/19(土) 06:25:19.76ID:MRSgSgPN
2015/08/26 15:12:01
2015/08/27 1:04:03

上のような日付時刻のデーターから2つの差分の経過時間日数を表示させるには
どのように書けば良いのでしょうか?
0248デフォルトの名無しさん2015/09/19(土) 07:03:55.20ID:ZcnBR6n/
>>247
セルにシリアル値が入ってるとして
差 = Range("B1").Value - Range("A1").Value
0249デフォルトの名無しさん2015/09/19(土) 07:20:25.72ID:ABga1iDK
上達するまで時間かかりそうだなー。
0250デフォルトの名無しさん2015/09/19(土) 08:36:36.43ID:jW6yRKII
>>248
それって>>247の言う「経過時間日数を表示」することになるのかね?
0251デフォルトの名無しさん2015/09/19(土) 09:21:22.56ID:xryWHhpW
>>250
セルに表示するなら書式設定でできるかと
0252デフォルトの名無しさん2015/09/19(土) 10:19:50.27ID:jW6yRKII
>>251
0 3:26:13 (← 3時間26分13秒経過 の意味)
477 1:12:34 (← 477日1時間12分34秒経過 の意味)

みたいに表したいんじゃないかと想像したんだが、どうだろう。
0253デフォルトの名無しさん2015/09/19(土) 11:16:51.77ID:xryWHhpW
>>252
セルの書式 - 表示形式 - 分類(C) - ユーザー定義で種類(T) に d hh:mm:ss
02542532015/09/19(土) 11:23:41.09ID:xryWHhpW
あっ、日付が1ヶ月越えるとダメだな...
0255デフォルトの名無しさん2015/09/19(土) 12:39:08.79ID:N5F00OSs
datediffでインターバルをdにすれば日数は取れるんじゃないの
0256デフォルトの名無しさん2015/09/19(土) 13:01:19.07ID:GIof26cq
時刻の差分を求める
時間を特定のフォーマットで表示する
別の話だから
前者は>>248で良いだろ
後者は元質問者がどう望んでるか分からんから回答できんわ
0257デフォルトの名無しさん2015/09/19(土) 23:52:44.74ID:U6It5g+s
datediffじゃなくてdatedifだな
なぜかヘルプに載ってないシート関数
0258デフォルトの名無しさん2015/09/21(月) 07:41:10.03ID:TLTHusWT
Excel2007を開かないで読み込み、書き込みしたいので
ADODB.Connection
ADODB.Recordset
を使って見ているんですが

書き込みのとき文字型になるので
書き込み先の関数が反映されないのですが対処方法ないですか?
0259デフォルトの名無しさん2015/09/21(月) 09:14:39.19ID:6Qd0iGUJ
Excelの関数はExcelが処理してるわけだが
そもそもADOでExcelシート開いて関数動くのか?

文字列型とかそういう問題じゃない気がするんだが
0260デフォルトの名無しさん2015/09/21(月) 10:36:58.18ID:MLBJrwW+
CDateで読み込んでいる元のリストに空白とか-/-とか1988/-とかが
混ざってて、-/-と空白は” “か”不明”で処理して、年号は拾いたいです。
うまい方法あったら教えて下さい。
0261デフォルトの名無しさん2015/09/21(月) 10:41:23.41ID:wKVLsJx8
>>260
IsDate()で日付として読み込めるかどうか判断できる。
空白は日付として解釈出来るので別途判断が必要。
0262デフォルトの名無しさん2015/09/21(月) 10:43:56.79ID:wKVLsJx8
「1988/-」はIsNumeric(Split("1988/-","/")(0))で判断できる。
0263デフォルトの名無しさん2015/09/21(月) 13:35:26.77ID:TLTHusWT
>>259
データを書き込んだ後に、エクセルを開くと
数字が文字型で入っているから関数が計算しないんだ
0264デフォルトの名無しさん2015/09/21(月) 20:04:31.29ID:Kfx74dr5
>>258
>Excel2007を開かないで読み込み、書き込みしたいので

なぜ?その必要性は?
0265デフォルトの名無しさん2015/09/21(月) 20:20:21.00ID:Zmx0dOIG
>>263
>Excel2007を開かないで読み込み、書き込みしたい
エクセルを開かないで、どうやってブックに書き込みするつもりなんだい?
あと、ADODBはVBScriptで作成してるのかい?
0266デフォルトの名無しさん2015/09/21(月) 20:47:10.32ID:6Qd0iGUJ
>>263
ちょっと実行環境とコード晒して
0267デフォルトの名無しさん2015/09/21(月) 22:14:40.79ID:TLTHusWT
>>266
コードは会社なんで連休明けにまた質問します。

数秒毎に書き込みをすることが結構あるので
毎回OPENするのを見るのはうっとうしいなぁと思ってるんですが
エクセルに書き込みをするのはやっぱりOPENしてからが普通かな
0268デフォルトの名無しさん2015/09/21(月) 22:59:15.59ID:F/XEG3RA
画面更新止めて開けばいいだけのことじゃねーか
0269デフォルトの名無しさん2015/09/21(月) 23:37:00.23ID:c1rO/cps
文字列だから関数が反応しない、ってことの方が俺には疑問だわ
たいていの関数は数値でも文字列でも処理してくれるのに
0270デフォルトの名無しさん2015/09/22(火) 01:33:16.60ID:RmAixVRL
数秒ごとに更新が必要なら、もう開きっぱなしでいいんじゃ?
0271デフォルトの名無しさん2015/09/24(木) 10:18:47.70ID:omyXVQMB
Excel2010以前のは全世界で一斉に使わなくすることは可能ですか?
0272デフォルトの名無しさん2015/09/24(木) 10:41:14.56ID:X5tdJ92l
不可能です
0273デフォルトの名無しさん2015/09/27(日) 01:20:22.02ID:F07ZjUKB
>>263 >>269
Excelが変更されたって検出できなければ再計算されないのさ
auto_openとかでApplication.Calculate
と書いとけば開いた時に再計算されるよ
0274デフォルトの名無しさん2015/09/29(火) 09:44:27.26ID:wb2Wnzgx
>>271
可能です
0275デフォルトの名無しさん2015/10/04(日) 14:07:57.32ID:/vSmtKMA
どうしてでしょうか?。Excel2007です。画像が50枚。Userform1にイメージ(image1からimage10)。Pfile()は、貼り付ける画像の絶対パス。
sub gazo(No as long)
For i = 1 To 10
UserForm1.Controls("Image" & i).Picture = LoadPicture(Pfile(i+No-1))
UserForm1.Controls("Image" & i).PictureSizeMode = fmPictureSizeModeStretch
Next i
end sub
これを実行すると、10個ちゃんと表示されます。引数Noが1,11,21,31,41と変化しても、それにあった画像が表示されます。
imageには、それぞれ、クリックすると イベントが呼び出されるようにしています。例えば、image1の場合、
Private Sub Image1_Click()
  'これがよびだされただけで、ここの画像が更新されず、この画像が消えなくなります。
end sub
No=1で呼び出され画像が表示された状態で、image1をクリックします。そして、No=11でこのプロシージャを呼び出します。
そうすると、image1の画像だけが変わりません。同様に、ほかのimageをクリックすると、その画像は固定されてしまい、かわりません。
ちなみに、 UserForm1.Controls("Image1").Picture = LoadPicture("")でも消えません。(クリックする前は、ちゃと消えます)
0276デフォルトの名無しさん2015/10/04(日) 16:30:11.15ID:UTkim9Ku
>>275
UserForm1.Repaint
0277デフォルトの名無しさん2015/10/04(日) 17:03:45.11ID:g7SqYJ/X
>>275
単純にイメージ書き換えるサンプルで検証したけど、更新されないのは再現したな
とりあえずフォームをRepaintしてやれば画像は更新される
消えるのは再現しない

VBAのフォームってAutoRedrawとか無いんだな
まあ、そういうものだと割り切って使うしかないんじゃね
02782752015/10/04(日) 18:57:20.53ID:GDhGHTrc
>>276,277
レスありがとうございました。UserForm1.Repaintで、更新されました。
これ、1回でもSub Image1_Clickすると、以降は.Repaintする必要があるんですね。
Sub Image1_Click以降の処理に何かあるんじゃないかと、数日格闘しました。
解析の対応も、逆だったですね。勉強になりました。どうも、ありがとうございました。
0279デフォルトの名無しさん2015/10/04(日) 19:30:54.16ID:2AM+oKUz
もう一つのスレにも書き込みましたが
質問失礼します。

このたびwin10にアップグレードしたのですが
excelのVBAで下記の記述を使うIE操作ができなくなってしまいました。
object("InternetExplorer.application")
昨日からやり方をぐぐったりして試行錯誤していますが解決できませんでした。
今まで通りIEを呼び出す方法はあったりしますでしょうか?
0280デフォルトの名無しさん2015/10/05(月) 02:40:58.07ID:uvbnrVeH
10は物によってはIE入ってないらしいから入れる必要があるのかもね
うちは入ってたけど
0281デフォルトの名無しさん2015/10/05(月) 06:43:32.33ID:Gxee2tr0
>>279
出来ないってどうなるのよ?エラーメッセージ書きなさいよ。
0282デフォルトの名無しさん2015/10/05(月) 13:24:24.30ID:PnYDCBrn
>>281
ごめんなさい。
0283デフォルトの名無しさん2015/10/05(月) 13:32:25.29ID:riTZJY1L
ゆるさないんだから
0284デフォルトの名無しさん2015/10/06(火) 12:24:45.75ID:vCF6HdoW
教えてください。Excel2007使用です。
アクティブなシートで、シート名を変更する状態になっています(シート名が反転)。
この状態で、Range("A1").activate とするとエラーになります。
シート名を変更する状態になっているのですから、当然といえばそうでしょうが
vbaで、シート名変更状態をキャンセルして、Range("A1").activate をエラーなく
実行するには、どうすればいいでしょうか?。
また、シート名変更状態かどうかを、判定することはできるでしょうか?。

if シート名が変更状態なら then
(キャンセルして、セルをactiveにする)
end if
0285デフォルトの名無しさん2015/10/06(火) 12:32:24.59ID:pvo7HcyG
>>284
エラーメッセージぐらい書け
シート名が反転した状態からどうやってマクロ起動してるんだ?
そのマクロ、どこに書いてるんだ?Rangeにちゃんとシート指定してもダメなのか?
0286デフォルトの名無しさん2015/10/06(火) 13:13:15.32ID:ObRFSR9m
VBE開いたデバック状態でマクロ実行してるんじゃ?
通常だとシート名アクティブ状態でマクロそのものが実行できないだろ
0287デフォルトの名無しさん2015/10/06(火) 14:24:45.36ID:hiQs0jh9
SendKeys("Esc")
02882842015/10/06(火) 17:18:04.28ID:vCF6HdoW
>>285,286 失礼しました。
実行時エラー'1004' 'Activeメソッドは失敗しました'_Workbook'オブジェクト
A,B2つのブックがあって、AからBを処理しようとしてます。
マクロはAの標準モジュールに書いてます。Bブックの追加シートタブを1クリック、さらにうっかりもう1回クリックすると
シート名が反転状態になり、その状態でAフォームのBブックに対するモジュールを実行したら、エラーになりました。

>>287 ありがとうございます。下記のようにして、どうにかエラーが出なくなりました。
On Error Resume Next
Workbooks(target).Activate ' Bブック この時点でエラーになってしまうので
If Err.Number <> 0 Then
  Application.SendKeys "ESC"
Err.Clear
End If
On Error GoTo 0
UserForm1.Show (vbModeless)  '表示されてるフォームをアクティブにして
Application.SendKeys "ESC" 'こちらにもESC送らないと、いけませんでした。
0289デフォルトの名無しさん2015/10/06(火) 18:38:46.96ID:0TXrfnt1
DO LOOPで
列を1個づつずらしてループさせる方法をお願いします
0290デフォルトの名無しさん2015/10/06(火) 19:04:12.04ID:B9q/85j9
>>289
インクリメントすればいいんじゃ?
0291デフォルトの名無しさん2015/10/06(火) 21:32:26.91ID:wE29fvgY
上のIEの件もし解決出来てたら詳細教えてください
うちにも使えなくなったブックがあってダルくて考えるの放棄してるw
0292デフォルトの名無しさん2015/10/07(水) 08:11:32.88ID:qdqRCjiZ
受ける会社大丈夫?
下記の条件が全て当てはまる会社にご注意下さい。

・IT系 in tokyo
・「社名 労基」でググると過去の2chスレが出てくる
・転職会議で2.5点
0293デフォルトの名無しさん2015/10/11(日) 00:47:04.78ID:QkgTMuTY
with activecell.rows
.autofill .resize(1)
end with

これなにか間違ってる?
0294デフォルトの名無しさん2015/10/11(日) 00:52:22.49ID:tii6VF/Q
>>293
rows→row ?
0295デフォルトの名無しさん2015/10/11(日) 01:02:11.74ID:dc8fNJEd
>>293
俺の乏しい知識では間違いだらけに見える
.AutoFill Destination:=.Resize(10)
とかしないと動かない
0296デフォルトの名無しさん2015/10/11(日) 13:33:14.14ID:QkgTMuTY
>>294
rowって行数だよな

>>295
resizeの引数の考え方をoffsetと勘違いしてたっぽい
けどたぶん行全体のrangeをautofillするのがそもそも駄目な気がする
エクセル会社にしかないから今検証できないけど
0297デフォルトの名無しさん2015/10/13(火) 19:55:27.34ID:l9wB2pdG
>>296
こういうこと?
Sub test()
With ActiveCell
.AutoFill .Cells(1, 1).Resize(, 1 + Columns.Count - .Column)
.AutoFill .Cells(1, 1).Offset(, 1 - .Column).Resize(, .Column)
End With
End Sub
最初 .EntireRow でやってみたら、ActiveCellがA列のときしか駄目だった
0298デフォルトの名無しさん2015/10/21(水) 16:49:09.39ID:+5BbTA0D
特定のグラフの再描画を停止させることはできますか?
できるのでしたらやり方を教えて下さい。

シートにグラフが3枚あります。
2枚のグラフのデータ領域は5秒間隔で書き換えられます。
残りの1枚のグラフは5分間隔でデータが書き換えられます。
グラフ1:データ数180*7系列 データ更新頻度:5秒
グラフ2:データ数180*6系列 データ更新頻度:5秒
グラフ3:データ数900*6系列 データ更新頻度:5分

3枚目のグラフは5分間隔で再描画されれば十分のですが、5秒間隔で再描画されているように見えます。
この再描画に結構時間がかかっているようですしリソースも食っているように感じます。
3枚目のグラフが5秒おきに再描画されるのを止めたいのですが可能でしょうか?
0299デフォルトの名無しさん2015/10/21(水) 16:53:11.23ID:jtu/I8YX
グラフを5秒おきに書き換えたいって、為替とか株やってる人なのかなぁ。
03002982015/10/21(水) 17:03:52.89ID:+5BbTA0D
>>299
正解!
03012982015/10/21(水) 17:12:29.63ID:+5BbTA0D
今は暫定的に
Sheet1:グラフ1とグラフ2
Sheet2:グラフ3
というように3枚のグラフを別シートに置き、
5秒間隔のデータ更新時は、Worksheets("Sheet2").EnableCalculation = False のようにし、
5分間隔のデータ更新後に、Worksheets("Sheet2").EnableCalculation = True でグラフ3を更新しています。
できれば3枚のグラフは一つのシートに配置したいのです・・・
0302デフォルトの名無しさん2015/10/21(水) 19:08:39.42ID:dF+6DuJI
株価book見てみたい!
0303デフォルトの名無しさん2015/10/21(水) 20:51:45.44ID:ZXMR/M8n
データを直接シートに、5秒毎に書き込むから、
それが再描画されるのだろう

データ → メモリ → シート

のように、間にメモリか配列(コンテナ)をおいて、
5秒毎にメモリに書き込んで、そこにデータを貯めておいて、
シートには5分毎にしか書き込まない
0304デフォルトの名無しさん2015/10/21(水) 21:55:36.77ID:reylgbjK
>>299
そういう用途は、Googleスプレッドシートのほうが楽に出来る。
0305デフォルトの名無しさん2015/10/21(水) 22:12:42.83ID:+5BbTA0D
>>303
え、え?よくわかりません
グラフ1とグラフ2は5秒毎に更新したい、
グラフ3は5分毎に更新したいのです
シートに5分毎に書き込まなかったらグラフ1,2は5秒毎に更新されないのでは?

>>304
ちょいとググってみます
0306デフォルトの名無しさん2015/10/21(水) 22:32:19.10ID:t2Kd5CVN
>>305
3つのグラフをシート1に置き、
グラフ1とグラフ2のデータをシート1に、グラフ3のデータだけシート2に置く。
シート1のデータは5秒おきに更新し、シート2のデータは5分おきに更新する。

じゃダメなの?
0307デフォルトの名無しさん2015/10/21(水) 22:36:58.59ID:+5BbTA0D
>>306
あーなるほどー
今エクセルできる環境じゃないので明日の夜に試してみます
私頭固いんでそういう柔軟な発想ができないんですよね
非常にありがたいんですが非常に悔しいです
ありがとうございます!
0308デフォルトの名無しさん2015/10/21(水) 22:41:33.05ID:OyO16cpw
頭固くて株は大丈夫なのか?
0309デフォルトの名無しさん2015/11/14(土) 14:26:30.36ID:kOM7V2YG
コンボボックスに入れた数値にバリデーションチェックをかけたいのですが

Private Sub ComboBox1_Change()
With ComboBox1.Validation

ってやるとメソッド又はデータメンバーが見つかりませんというエラーが出ます。
どうやればバリデーションチェックをかけられますでしょうか。
0310デフォルトの名無しさん2015/11/14(土) 17:47:27.05ID:v0Sve+AN
>>309
自分でそのバリデーションチェックというのを実装すればいい
バリデーションチェックて具体的になに?
0311デフォルトの名無しさん2015/11/14(土) 18:09:07.45ID:saXVV+dT
>>309
こんな方法はどうですか? (セルの入力規則を利用する方法)

セルに入力規則をかけておく (下記例では B1 としている)
※ LinkedCellの設定が同じ(つまり B1)なら正しく制御できない為 LinkedCellの設定削除

んで
Private Sub ComboBox1_Change()
  Dim Save As Variant
  With Range("B1")
    Save = .Value
    .Value = ComboBox1.Value
    If .Validation.Value = False Then
      .Value = Save
       MsgBox "入力規則に合っていません。"
    End If
  End With
End Sub
0312デフォルトの名無しさん2015/11/15(日) 03:12:39.36ID:XgNMkXlR
>>311
.valiidationはセルにするという基本を知りませんでした。
でtrue false判定ができるんですね
この方法は便利ですね。
入力値にセルのバリデーションを介さず直接判定をかける方法もあるんでしょうが、私には難しいと思います。

ありがとうございました。
0313デフォルトの名無しさん2015/11/20(金) 12:48:13.07ID:6QRhjKxy
何か実行する時にまとめてチェックするといいよ
0314デフォルトの名無しさん2015/11/23(月) 18:05:34.71ID:E/AQhXvM
VBAの処理を完全終了(停止)してからその後に
次実行したいプロシージャを自動で実行させる方法はありますか?
可能であればBookをすべて閉じて開き直したブックに書かれたプロシージャを実行させたり
Excel事態を再起動してBookを開き次にじっs校するプロシージャを動かせれば完璧なのですが、こういうことをやる方法はありますでしょうか?かのうでしょうか?
0315デフォルトの名無しさん2015/11/23(月) 18:40:53.20ID:rlgjQim1
Variant型変数はセル範囲や配列も代入できるでしたっけ?
この辺のしくみを竹を割ったようにサッパリと分かりやすく解説していただけないでしょうか?
0316デフォルトの名無しさん2015/11/23(月) 19:28:58.01ID:DSD5gnTN
>>314

ExcelVBA 裏ワザ大辞典って本で
「一時的にVBScriptファイルを作成して、それを使ってExcelを再起動する方法を解説する」ってのがあった
後は本のタイトルでぐぐればゲフンゲフン w
0317デフォルトの名無しさん2015/11/24(火) 01:21:12.88ID:wu4gTPMZ
>>315
Variantの中には必ず2つのデータが組で入ってて、1つ目は変数の内容そのもの、もう1つは変数の型が入ってる
型の部分は変数を代入する時に、自動的にセットされる
何の型がセットされたか調べるにはTypeName関数を使う
何がセットできるかはMSDNに一覧がある
どうやって型を決めるかのアルゴリズムは確か非公開だったように思う

(例)
Dim a As Integer
Dim b As Variant
a = 123
b = a ' Variant型変数にInteger型変数を代入
Debug.Print TypeName(b) ' Integerと表示される
0318デフォルトの名無しさん2015/11/24(火) 08:48:27.95ID:DVbUiEch
>>317
> 何の型がセットされたか調べるにはTypeName関数を使う

デバッグとかで型名表示するだけならともかく、型で処理を分けるとかなら VarType 関数の方がいいと思う
03193152015/11/24(火) 10:50:41.90ID:2xX81aKH
>>317
なるほどすばらしい。
ありがとうございます。
0320デフォルトの名無しさん2015/11/25(水) 11:39:32.64ID:/lbny/AY
お願いします。
配列に小数点のある数値を格納した場合、勝手に第二小数点まで四捨五入されてしまうのでしょうか?
dim data() as currencyで作ってみたのですが、
VBAなしで作った計算結果とVBA配列を使った同じ計算結果が全く違う答えになってしまいました。
0321デフォルトの名無しさん2015/11/25(水) 13:19:12.11ID:8iY9CP3j
>>320
何か勘違いしてないか?

Sub foo()
  Dim data(0) As Currency
  data(0) = 1.23456
  Debug.Print data(0)
End Sub

結果: 1.2346
0322デフォルトの名無しさん2015/11/25(水) 20:34:25.57ID:GSr8zJ+4
>>320
そのまま四捨五入するとExcelの関数とVBAでは丸め方が違うからその差が出てるんじゃない?

詳しくはWebで
0323デフォルトの名無しさん2015/11/26(木) 13:24:16.18ID:Oi+4AKMW
ありがとうございます。
割り切れない小数点同士の割算をさせるとき、誤りが出る可能性があるんですね。
0324デフォルトの名無しさん2015/11/26(木) 14:23:11.88ID:K8Py7wqE
>>323
Excel側の都合で誤差が出ることもあるし、計算は正しいのに見た目が違うだけの場合もある

実際の数字は小数点以下が20桁ぐらいあるのに書式によって一部しか表示されてないとか、
セルの幅によって表示桁数が自動的に変わるなんてことは割とよくある
0325デフォルトの名無しさん2015/11/26(木) 14:37:15.59ID:wjty/3s6
>>323
> 割り切れない小数点同士の割算をさせるとき、誤りが出る可能性があるんですね。
今回のケースでは通貨型を使ったのが丸められた原因で、
なおかつ、通貨型は小数点以下第5位以下が五捨六入される

そういうことじゃないのか?
0326デフォルトの名無しさん2015/12/03(木) 18:05:47.92ID:/h+G/URd
通貨型ってなんの得があるんだろうな
0327デフォルトの名無しさん2015/12/03(木) 18:21:57.99ID:jUS2N3R7
浮動小数点の誤差がでない
0328デフォルトの名無しさん2015/12/03(木) 19:13:33.78ID:9IIGTedn
金に縁がない人には一生分からんだろ
0329デフォルトの名無しさん2015/12/03(木) 20:14:08.33ID:6hyvlQba
BCD
コボル
0330デフォルトの名無しさん2015/12/03(木) 21:18:37.38ID:srgQPG9D
Longより大きな数が扱えて誤差が出ない
doubleの上位非互換
0331デフォルトの名無しさん2015/12/04(金) 09:42:47.69ID:7C0cNGgl
Longより大きな額を扱う人にはおなじみ
0332デフォルトの名無しさん2015/12/04(金) 09:54:23.21ID:ZztQGqTx
longより大きい数字を扱うことなんてあるのか。
うちの場合は口座残高くらいにしか使えんな。
0333デフォルトの名無しさん2015/12/04(金) 12:18:04.28ID:dcuRFkWT
Longだと俺の口座管理出来んだろうが
0334デフォルトの名無しさん2015/12/04(金) 12:28:27.84ID:2w03ex4R
よっぽどの負債を抱えてるんだな
0335デフォルトの名無しさん2015/12/04(金) 13:05:56.10ID:hxqGHG2w
ジンバブエの人かもしれない
0336デフォルトの名無しさん2015/12/04(金) 16:37:43.41ID:uWFo4MPw
以前、longで集計してたらオーバフローしたわw
慌ててCurrencyにしたけど
0337デフォルトの名無しさん2015/12/05(土) 13:37:54.17ID:MOG2PmhH
クリップボードを介さずにRangeのCutとPaste相当をしたいのですが
やはり値と書式を地道に移していくしかないでしょうか
あとこういったことの汎用ライブラリモジュールみたいなのはないでしょうか
0338デフォルトの名無しさん2015/12/05(土) 13:45:56.38ID:MOG2PmhH
というのも非常に時間がかるマクロなので待ち時間が惜しいのと
軽い作業ならいいだろうと実行中に無意識にクリップボード操作をして止まってしまったりする事、
最悪pasteでテキストと入れ替わった場合エラーとして検出されずデータ破壊した事に気付かず処理が進んでしまう事
などが怖いので可能な限りクリップボードを使わずに処理を書きたいのです
0339デフォルトの名無しさん2015/12/05(土) 16:03:25.14ID:w7NeWp2q
>>337
カットペーストを繰り返すというのが地道だと思うんだけど…???
0340デフォルトの名無しさん2015/12/05(土) 16:21:37.76ID:waj24j1A
>>338
コピペを完璧に実装するのは大変だけど、自作のマクロの中だけで使うならサブセットで十分だろ
必要な情報だけ移せばいい

ていうか、コピペ多用で時間の掛かるマクロってのが根本的におかしい気がする
コピペの方法で悩むより、コピペしなくていい方法とか、スピードアップする方法を考えた方がいくね?
配列で処理するとか、アルゴリズムを見直すとか
0341デフォルトの名無しさん2015/12/05(土) 18:29:17.61ID:S8d8TjQn
コピペで時間が掛かるとは書いてないが…
0342デフォルトの名無しさん2015/12/05(土) 18:32:25.42ID:CzuIJRwA
コピペばかりしてると小保方さんのようになるぞ。
0343デフォルトの名無しさん2015/12/05(土) 18:46:42.30ID:1QMYHCHR
クリップボードのTLSみたいなのがあれば解決したんだろうな
0344デフォルトの名無しさん2015/12/05(土) 20:07:34.63ID:JOC1LVGS
なんだ、クリップボードに入れるとクリップボード上のデータを他プロセスから盗み見られる可能性を心配している
セキュリティのプロフェッショナルかと思ったら違うのかよ。
0345デフォルトの名無しさん2015/12/05(土) 21:47:02.20ID:MOG2PmhH
とりあえずPaste前にClipboardFormatsで中身を確認することにしました
これでテキスト編集ぐらいは並行してできそうです
0346デフォルトの名無しさん2015/12/06(日) 00:02:07.83ID:Rb3lVfqw
それ何も解決できてない気がする
クリップボードが壊れたら時間かかるマクロをまた最初からやり直しじゃん

Range.Copy Destination:= の形式で作業シートにデータを移せば、
クリップボードは使わなくて済むしこっちのが高速だぜ
0347デフォルトの名無しさん2015/12/06(日) 00:16:20.37ID:6uUtXQvE
>>346
なんでクリップボード使ったり作業シート使ったりしないといけないのか理解できない初心者です
0348デフォルトの名無しさん2015/12/06(日) 00:21:40.57ID:Rb3lVfqw
時間がかかって、書式もまとめて扱いたいケースって、ネットから大量のデータを持って来て整形とかじゃない?
よく聞くのは株とか競馬とかの過去データを集めて分析
0349デフォルトの名無しさん2015/12/06(日) 09:46:42.00ID:F0HE3LOZ
利用者が設定した書式も含めて集約したいとか普通にあるだろ
0350デフォルトの名無しさん2015/12/06(日) 10:10:20.93ID:Rb3lVfqw
集約 (コピペ) だけなら、待ちきれなくて別のこと始めちゃうほど時間かからんと思うけど
0351デフォルトの名無しさん2015/12/06(日) 16:12:40.62ID:F0HE3LOZ
>>350
>>341
0352デフォルトの名無しさん2015/12/07(月) 08:30:41.03ID:7geCXLnk
>>341
だとしたら、作り方がゴミなだけ
0353デフォルトの名無しさん2015/12/07(月) 20:54:13.56ID:6inzLqq+
Call BeepAPI (2000,1000) では1000ミリ秒音がなりますが、
音の鳴っている1000ミリ秒間は他の処理は行っていないようです。

音は鳴らしたいのですがマクロパフォーマンスはなるべく落としたくないのですが
いい方法はありませんか?
0354デフォルトの名無しさん2015/12/08(火) 14:32:07.79ID:HJc+axyd
音を鳴らしてなにしたいのかな?
それによって選択肢がかわるとおもうけど
BGM的なものなら
waveファイルの再生(PlaySound)で非同期再生すれば?
0355デフォルトの名無しさん2015/12/08(火) 15:58:27.45ID:/lRPavxe
>>354
普通そっち使うわな。
0356デフォルトの名無しさん2015/12/08(火) 22:55:21.52ID:/XNexRBf
>>354
非同期、PlaySoundでググったらなんか良さげです。
これを試してみます。ありがとうございました。
0357デフォルトの名無しさん2015/12/10(木) 00:27:25.68ID:ydUpcr2T
やっぱいまだにPlaySoundなのか
いまどきのPlaySoundの上位互換みたいなのないのかいなー
0358デフォルトの名無しさん2015/12/10(木) 00:42:30.86ID:7o1Slt65
音を鳴らすのって色々方法はあるみたいよ
mciSendString とか
DirextXを使って鳴らす とか
あと以前ぐぐってたら wavファイルをシートに貼り付けておいて
それを鳴らすってのもあったな
0359デフォルトの名無しさん2016/01/03(日) 07:48:49.80ID:UgdGt6Fz
つ midiのAPI
0360デフォルトの名無しさん2016/01/04(月) 16:13:34.36ID:bUPZv6XS
入力用にdataという名前のシートがあり、そのB5からD10までの範囲には
必ず入力しないといけないという仕様だとして、

シート data から他のシートに変えようとした時にその範囲に未入力があれば
入力漏れがあるとメッセージを出して変更出来ないようにしたいんですが、、、
(勿論データの型チェックもするとして)
Worksheet_Deactivate()でどう書けば良いんですかね
0361デフォルトの名無しさん2016/01/04(月) 17:19:10.97ID:ZAkNRCkU
>>360
Private Sub Worksheet_Deactivate()
Const CellArea As String = "B5:D10"
Dim BlankCell As Range
 
  If WorksheetFunction.CountBlank(Range(CellArea)) > 0 Then
    Set BlankCell = Range(CellArea).SpecialCells(xlCellTypeBlanks)
    MsgBox BlankCell.Address(0, 0) & "セルが未入力です。", vbCritical
    Worksheets("data").Select
  End If
End Sub
0362デフォルトの名無しさん2016/01/04(月) 17:48:54.42ID:bUPZv6XS
>>361
早速に教えていただきありがとう御座います
空白セルも表示されて判りやすいです。感謝m(_ _)m
0363デフォルトの名無しさん2016/01/09(土) 05:16:51.46ID:qH2Ukpbo
空白をつめてセル範囲をコピーするにはどうすればいいですか?
0364デフォルトの名無しさん2016/01/09(土) 06:29:45.09ID:sD5C6F8w
どのセルが空白かどうかを調べるぐらいはできるだろ?
でコピーする範囲を特定したらお好きな場所にコピーするんだよ
それだけだよ
0365デフォルトの名無しさん2016/01/09(土) 09:54:10.70ID:eE0tOkYT
いいなー
すっげーテキトーで投げやりな回答
0366デフォルトの名無しさん2016/01/09(土) 10:27:15.00ID:3oYUMHkH
>>363
コピーってクリップボードにコピーしたいの?
何をコピーしたいの?値?
0367デフォルトの名無しさん2016/01/09(土) 13:29:45.71ID:HKBkINca
WIndows7 64bit
office2013のエクセルを使用しています。
異なるブックのセルに対してハイパーリンクを埋め込みたいと思っているのですがうまくいかず困ってしまっております
ヒントになりそうなことを教えていただけたらいいなと思っております。

作業しているブック.xls と 写真撮影.xlsxがあり
作業しているブックの中に書かれたVBAで写真撮影.xlsxにハイパーリンクを張りたいと思っています

touroku_num = "100234321"

Workbooks("写真撮影.xlsx").Worksheets("Sheet1").Cells(1, 7) = touroku_num
では問題なく値を異なるブックのセルに転記することができました


Workbooks("写真撮影.xlsx").Worksheets("Sheet1").Hyperlinks.Add Anchor:=Workbooks("写真撮影.xlsx").Worksheets("Sheet1").Cells(1,7), Address:="http://www.google.co.jp";, TextToDisplay:=touroku_num


でハイパーリンクの設定ができると思ったのですが
実行エラー1004:アプリケーション定義またはオブジェクト定義のエラーですと表示されてしまします
異なるブックのセルに対してハイパーリンクを埋め込む書き方を教えていただけないでしょうか?
よろしくお願いいたします
0368デフォルトの名無しさん2016/01/09(土) 15:24:20.55ID:FJlRsUE7
>>367
俺も Excel2013 だけど エラーにならず 動くな

エラーの場所 他の場所じゃないの?  それか質問の為に>>367のコード書き換えた?
0369デフォルトの名無しさん2016/01/09(土) 16:34:08.03ID:cTuaLdfs
>>367
その2つのブックをどこかにアップしてみて
コード見てあげるから
0370デフォルトの名無しさん2016/01/09(土) 16:48:11.41ID:HKBkINca
>>367です
申し訳ありません、、、
写真撮影.xlsxが共有モードになっていたためハイパーリンクが晴れないようでした
=HYPERLINK("","")で対処してみようとおもいます
0371デフォルトの名無しさん2016/01/16(土) 09:43:18.80ID:9UHyvoL/
excel2002 XPを使用しています。
エクセル内部に
microsoft webbrowserを配置し、
@web検索や検索結果の表示自動化
A画像ファイルをD&Dで素早く取り込む
用途で使用したいと思っています。

職場での作業改善で作りたいと思っているのですが
最近IEは最新版しかセキュリティー対策しないとニュースで見ました。
ウェブ検索はwebbrowserも同様で使わない方が良いのでしょうか?

エクセル内部にD&Dで画像を入れる事ができるフォームは他にないでしょうか?

宜しくお願いします。
0372デフォルトの名無しさん2016/01/16(土) 11:04:52.52ID:LOKjQJ+L
>>371
Excel2002もXPも使わないほうがいい
0373デフォルトの名無しさん2016/01/16(土) 13:52:15.21ID:9UHyvoL/
>>372
レスありがとうございます。

職場のXPは外部からの不審な接続を遮断する装置?や
ログを監視している人がいるので
これらは新しい物にして貰えないです。
すみません、アドバイスありがとうございます。
0374デフォルトの名無しさん2016/01/16(土) 15:22:34.77ID:x5xZZ1m2
>>373
監視するのはいいけど、サポート切れ製品を外部接続環境での使用を認めている時点で、ザルセキュリティ企業確定だけど。
作業改善とやらを行う前にやるべきことがあると思うよ。
そもそも、検索で拾ってきた画像をエクセルに貼り付けて、何に使うんだ?
社内だけでの利用であっても、著作権者が商用利用可としているもの以外は、違法だぞ。
0375デフォルトの名無しさん2016/01/16(土) 16:05:31.27ID:LOKjQJ+L
>>373
そこの職場がそれでいいって言ってるなら、
ここでセキュリティについて聞いてもなんの意味もないよね?
周りにだけは迷惑かけないように、会社のルールに則ってご自由になさってください
0376デフォルトの名無しさん2016/01/18(月) 10:44:44.35ID:i4s8voPU
>>373
セキュリティを気にしているのなら、既に無法地帯だから気にする必要ないよ
0377デフォルトの名無しさん2016/01/18(月) 17:35:39.61ID:Snzsj2Zm
銀行のATMやスーパーのレジもいまだにXPなんだよね。
0378デフォルトの名無しさん2016/01/18(月) 17:39:59.80ID:FdwQhZix
>>377
詳しいんですね
0379デフォルトの名無しさん2016/01/18(月) 17:55:17.30ID:M94/HkrH
ファイアウォールでホワイトリスト縛りでもやってるんでしょ

…といいたいところだが普通に検索して自由に接続できるのかしら
0380デフォルトの名無しさん2016/01/18(月) 21:00:55.45ID:S6LQNh+S
用途によってはNT4.1とか普通に現役でしょ・・・・・・というのも俺が11年前に卒業した大学。
0381デフォルトの名無しさん2016/01/18(月) 21:03:18.71ID:S6LQNh+S
4.1じゃない4.0だ。
ていうか4.1ってあったっけ。
0382デフォルトの名無しさん2016/01/18(月) 21:39:17.70ID:E8u5NtKZ
>>377
当然知っていると思うけど、埋め込み版は別料金でサポート可だから。
0383デフォルトの名無しさん2016/01/18(月) 21:54:58.81ID:OjosQr+8
空港ですらwin3.1使ってる現代だし
0384デフォルトの名無しさん2016/01/31(日) 01:04:44.97ID:0EFpaxr4
いまさらながら=キーを一発で入力できるようにする方法を教えてください。よろしくお願いいたします。
0385デフォルトの名無しさん2016/01/31(日) 01:18:24.70ID:0EFpaxr4
頼む!!早く教えてくれ!!!!!
0386デフォルトの名無しさん2016/01/31(日) 01:28:48.16ID:waIKWgfV
それはVBAの話か?
それともワークシートに関数式を入れる時のはなしか
0387デフォルトの名無しさん2016/01/31(日) 01:42:01.92ID:0EFpaxr4
Do Until 行 > 100
行 = 行 + 1

>>386
もちろVBAの話でございます。
0388デフォルトの名無しさん2016/01/31(日) 10:52:31.29ID:XdM4wcMk
>>384
sendkeys
0389デフォルトの名無しさん2016/01/31(日) 12:36:14.27ID:oGNCocg8
sendkeysで全角の=っていけたっけ
0390デフォルトの名無しさん2016/01/31(日) 13:36:49.88ID:gYgCgtHy
悩んでる間に「=」キー付きのテンキー買ってきた方がアタマいいと思う
全角? 全角の=なんて、Wordでしか使いみち無いんじゃねーの?
ファンクションに割り当てるとか、キー配列変更アプリとか手立てはごまんとあるし
VBAで割り振っても行けるだろうけど、ローカライズはローカライズに過ぎなくて
ヨソで戸惑うことになるぐらいなら、物理的に用意しとくほうがマシだと思う
0391デフォルトの名無しさん2016/01/31(日) 13:37:03.30ID:fJmO8CE1
キーと文字は別じゃないか?
0392デフォルトの名無しさん2016/01/31(日) 17:21:20.64ID:u2Y3oBPR
そもそも
「=キー」を「一発」で「入力」って言ってるんだが
どうなってて何がしたいのか俺には意味がわからんな
0393デフォルトの名無しさん2016/01/31(日) 21:51:55.48ID:Ta8sObxJ
USキーボードだと「=」はShift側ではないね。
0394デフォルトの名無しさん2016/02/01(月) 00:11:45.34ID:OtGEIpWo
キーをスワップするフリーのソフトを使えば一発やろ
古典的な方法やな
0395デフォルトの名無しさん2016/02/01(月) 00:25:34.67ID:SvGDW8bi
俺は1ストロークと解釈したけど
要するにShiftを押すのが面倒
0396デフォルトの名無しさん2016/02/01(月) 00:26:27.15ID:SvGDW8bi
>>390
俺の知ってるテンキーには=が付いてなかった
0397デフォルトの名無しさん2016/02/01(月) 00:37:29.76ID:NSgxTlaf
VBA以外の話題のほうがレスがたくさんついて嬉しい
0398デフォルトの名無しさん2016/02/01(月) 00:57:30.69ID:OtGEIpWo
キースワップじゃなかったな
キーボードマクロ
http://www.vector.co.jp/magazine/softnews/121113/images/n12111311b.gif
こういうので一発でできるんじゃないの 試してないけど
0399デフォルトの名無しさん2016/02/02(火) 10:32:53.40ID:OPpL3JBW
ハマってしまいました、cell とoffsetとloopの関係が解明できません。
エクセルデータから一行ずつhtmlファイルを作成するということをしたいです。
minitemplatorを使っています。
試しに3行でつくってみるとファイル名は変わるのですが、
set変数の箇所が一行目のままかわりません。
↓こんなVBAにしてあります

Private Const START_CELL = "T3"
Public Sub PushButton()
'
Dim Cell As Range
Dim Temp As MiniTemplator
Set Temp = New MiniTemplator

Temp.ReadTemplateFromFile ThisWorkbook.Path & "\h00_0.html"
Set Cell = Range(START_CELL)

Do While Cell.Row <= ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row
Temp.SetVariable "TITLE", Cell.Offset(0, 1).Value
Temp.SetVariable "CHAPTER", Cell.Offset(0, 2).Value
Temp.SetVariable "PREVCHAPTER", Cell.Offset(0, 3).Value
Temp.SetVariable "PREVPAGE", Cell.Offset(0, 4).Value
Temp.SetVariable "INDEX", Cell.Offset(0, 5).Value
Temp.SetVariable "NEXTPAGE", Cell.Offset(0, 6).Value
Temp.SetVariable "NEXTCHAPTER", Cell.Offset(0, 7).Value
Temp.AddBlock "htmls"
Temp.GenerateOutputToFile ThisWorkbook.Path & "\" & Cell & ".html"
Set Cell = Cell.Offset(1, 0)
Loop
End Sub

loopじゃなくてcntを足しながらじゃないとcellが移動しないのでしょうか?
0400デフォルトの名無しさん2016/02/02(火) 11:06:39.36ID:IlCfFCb1
>>399
Temp.GenerateOutputToFile ThisWorkbook.Path & "\" & Cell.Row & ".html"
0401デフォルトの名無しさん2016/02/02(火) 11:06:55.94ID:dkxIxmVG
>Temp.GenerateOutputToFile ThisWorkbook.Path & "\" & Cell & ".html"
でファイル名が変わっているなら、Cellは移動してるでしょ
0402デフォルトの名無しさん2016/02/02(火) 11:54:05.94ID:jGhzxxHj
>>400,401
ありがとう、cellは移動してるんだろうなあ。
エクセルのほうが確認してもデータはちゃんとそれぞれ違うものが入っている。
minitemplatorのほうで
temp.SetVariableのコマンドが新しいセルを代入していないのかな?どないしよw
素人がVBAでhtml一括出力なんて難しいのかな?くそう
手打ち変換で400ファイルはいやだ、変更できないしなあ
0403デフォルトの名無しさん2016/02/02(火) 12:00:40.43ID:jGhzxxHj
すみません、ちなみに
for i=1 to 3 で setvariable Cell.offset(i-1 , 1)〜  Next i
でやっても次の行の値は入ってませんでした。
Cell.Row でやったらシート全体の400行分を出力されたw
0404デフォルトの名無しさん2016/02/02(火) 13:09:44.34ID:IlCfFCb1
>>403
せいかい
Do While Cell.Row <= ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row
Temp.ReadTemplateFromFile ThisWorkbook.Path & "\h00_0.html"

まちがい
Temp.ReadTemplateFromFile ThisWorkbook.Path & "\h00_0.html"
Do While Cell.Row <= ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row
0405デフォルトの名無しさん2016/02/02(火) 14:52:30.00ID:+59vq7Tg
>>404
ふぁああああなたが神か。
何年やってたらそんな間違いが正解がわかるのか!
ありがとう。心の底からありがとう
tempReadはloopのなかなのかあ、、なるほどねぇえええありがとう1
0406デフォルトの名無しさん2016/02/02(火) 14:58:27.58ID:ml14fhOB
>>399
セルは移動してるから、minitemplatorとやらの問題

ちょっとしらべてみたけど
ループの頭にResetData 入れれば良いんじゃないか
>This method can be used to produce another HTML page with the same template.
って書いてあるぞ
ちゃんとドキュメント読め
0407デフォルトの名無しさん2016/02/02(火) 15:12:46.05ID:IlCfFCb1
読み込んだテンプレートを直接書き替えて出力するんだな
だから一度使ってしまうとタグが消えて書き替える場所がわからなくなってしまう

テンプレートファイルが見つからない時はちゃんとエラーメッセージを出すのに、
タグが見つからない場合はスルーするんだな
ここでエラーを出す仕様だったら2回目で置換に失敗するからすぐに解決できただろうに
なんか不親切というか出来の悪いライブラリだな
タグの入力ミスがあっても気付かないじゃないか
0408デフォルトの名無しさん2016/02/02(火) 19:34:19.67ID:WkrnCzmR
>>407
当たり前でしょ
ある項目の表示をやめるときにテンプレートとソースの両方の変更が必要になるライブラリなんて使いたくないわ
0409デフォルトの名無しさん2016/02/02(火) 20:27:42.19ID:IlCfFCb1
>>408
これって単純に文字列の置換をワンタッチでやってくれるだけだよ?
項目とかそういう単位とは無関係
0410デフォルトの名無しさん2016/02/02(火) 21:12:08.01ID:ebu6ZgQL
>>409
> 項目とかそういう単位とは無関係
minitemplator はよく知らんが、例えば
> Temp.SetVariable "CHAPTER", Cell.Offset(0, 2).Value
で置き換える部分のこと言ってるってわからんか?
0411デフォルトの名無しさん2016/02/02(火) 23:11:50.38ID:IlCfFCb1
>>410
話にならん
minitemplatorのドキュメントをちゃんと読んで機能を把握してからレスしてくれ

こっちは、「ある項目の表示をやめる」にはテンプレートとソースの両方を変更しなきゃならんという
タコ仕様だから文句言ってんのに
0412デフォルトの名無しさん2016/02/03(水) 04:09:39.88ID:xm/Odt/1
タグが見つからなかったらスルーするだけなら
テンプレートだけ直せば良いような気がするんだが

それが美しいか、エラー出すのが美しいのかは美学の問題だから知らんが
0413デフォルトの名無しさん2016/02/03(水) 08:30:17.06ID:ycDP2Q2/
>>412
> タグが見つからなかったらスルーするだけなら

と言う仕様は

> テンプレートだけ直せば良いような気がするんだが

のためにやってる

他のテンプレートエンジンもたいていそう言う仕様
ID:IlCfFCb1 は何か勘違いしてるか、引っ込みがつかなくなってる模様
0414デフォルトの名無しさん2016/02/04(木) 13:00:05.72ID:AIFo7uDS
初めて質問させていただきます。
ご教示お願いいたします。

sheet1(以下のマクロでは
0415デフォルトの名無しさん2016/02/04(木) 13:17:26.70ID:hf8MWHqG
あわてなくても


いいんだよ
0416デフォルトの名無しさん2016/02/04(木) 14:47:38.48ID:AIFo7uDS
初めて質問させていただきます。
ご教示お願いいたします。

sheet1(以下のマクロでは"sum")のあるセルを更新した際に、
マクロが起動するようにしたいのですが上手くいきません。
よろしくお願いいたします。

マクロそのものは動作確認済みです。
sheet("x")はsheet2のことです。


Private Sub Worksheet_Change(ByVal Target As Range)
' If (Target.Row = 2) And (Target.Column >= 3 And _
' Target.Column <= 5) Then

If Intersect(Target, Range("B3:B5")) Is Nothing Then
Exit Sub
Else
Dim x As Long, y As Long, i As Variant

Sheets("x").Select
x = Range("D2").Value
Cells(x, 2).Select
Range(ActiveCell.Offset(0, 1), ActiveCell.Offset(5, 22)).Copy
Sheets("sum").Select
Range("B8").Select
ActiveSheet.Paste

End If

End Sub
0417デフォルトの名無しさん2016/02/04(木) 15:46:32.36ID:VvZVruxG
>>416
Application.EnableEvents = False
0418デフォルトの名無しさん2016/02/04(木) 16:30:22.51ID:35TD0RG8
>>416
イベント操作はok
copyの元と先はどうでせう?

Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, Range(Cells(3, 2), Cells(5, 2))) Is Nothing Then
Exit Sub

Else
x = Cells(2, 4)
Worksheets("x").Range(Cells(x, 3), Cells(x + 5, 24)).Copy Worksheets("sum").Cells(8, 2)
End If

End Sub
0419デフォルトの名無しさん2016/02/04(木) 16:36:47.91ID:35TD0RG8
x=worksheets("x").cells(2,4) だった、、
0420デフォルトの名無しさん2016/02/04(木) 16:52:02.75ID:AIFo7uDS
>>417
ご教示ありがとうございます。
先ほどのマクロで間違いがありました。
条件の部分が先ほどの条件ではなく、下記になります。
If (Target.Row = 4) And (Target.Column = 3) Then..
Application.EnableEvents = False
行いましたが、変更しませんでした。
0421デフォルトの名無しさん2016/02/04(木) 16:53:28.63ID:AIFo7uDS
>>418,419
ご教示ありがとうございます。
copy元は問題ありません。
下記のマクロのDimからActiveSheet.Pasteまでは、標準モジュールで実行すると
シートXには反映されます。
ただ、セルの値を変えて標準モジュールの実行という2stepの2step目を省略したい
のですがうまくいきません。

Private Sub Worksheet_Change(ByVal Target As Range)
' Application.EnableEvents = False

If (Target.Row = 4) And (Target.Column = 3) Then

Dim x As Long
' Sheets("X").Select
' x = Range("D2").Value
' Cells(x, 2).Select
' Range(ActiveCell.Offset(0, 1), ActiveCell.Offset(5, 22)).Copy
' Sheets("sum").Select
' Range("B8").Select
' ActiveSheet.Paste

Worksheets("X").x = Cells(2, 4)
Worksheets("X").Range(Cells(x, 3), Cells(x + 5, 24)).Copy Worksheets("sum").Cells(8, 2)

End If
End Sub
0422デフォルトの名無しさん2016/02/04(木) 16:57:03.95ID:35TD0RG8
>If (Target.Row = 4) And (Target.Column = 3) Then

↑はdoubleclickなどのイベント操作で、おいらもやってみたが素通りする
0423デフォルトの名無しさん2016/02/04(木) 17:38:37.00ID:AIFo7uDS
>> 422
返信ありがとうございます。
条件のところは以下のように変更しました。
 If Intersect(Target, Range("D3")) Is Nothing Then
Exit Sub
 Else

しかし、うまくいきません。

コピー元はwebクリエを利用してますが、更新は行っていないため
ただのデータシートだと考えています。
0424デフォルトの名無しさん2016/02/04(木) 18:47:44.82ID:PFzCzh/c
>>423
>  If Intersect(Target, Range("D3")) Is Nothing Then
ここにブレークポイントかけて、Target.Adaress の値見てみなよ
0425デフォルトの名無しさん2016/02/11(木) 16:37:42.26ID:42PuBDmO
質問です。
スペースキーを押した時に"space"と表示したいのですが、すぐ消えてしまいます。


Public Declare Function GetAsyncKeyState Lib "User32.dll" (ByVal vKey As Long) As Long

Sub get_key()
Do
If GetAsyncKeyState(32) <> 0 Then '32=20h(space)
MsgBox "space"
Else
MsgBox "not_space"
End If

Application.Wait [Now() + "0:00:02"]
Loop
End Sub

よろしくご教授願います。
0426デフォルトの名無しさん2016/02/11(木) 17:08:14.33ID:vxbPXQEr
s/MsgBox/Debug.Print/
0427デフォルトの名無しさん2016/02/11(木) 17:43:02.01ID:VlMP9H51
>>425
で、質問は?
0428デフォルトの名無しさん2016/02/11(木) 18:17:27.97ID:42PuBDmO
>>427
spaceと表示した時のmsgboxがアテンションするまで待機するにはどうしたら?
0429デフォルトの名無しさん2016/02/11(木) 18:41:38.00ID:MrYtynOP
なんかあれだな犬が棒をくわえたまま
ドアから出られなくなって
どうやったらでれるのって聞いてるみたいな
0430デフォルトの名無しさん2016/02/11(木) 19:20:25.95ID:vxbPXQEr
ところで>>425の[]括弧って何か意味あるのかい
VBで[これ]が出てくるとなんだか警戒してしまうよ
0431デフォルトの名無しさん2016/02/11(木) 19:33:11.95ID:42PuBDmO
>>430
型が違うから"["と"]"で括りました。
(+ 秒以下も指定できる、ということで)
0432デフォルトの名無しさん2016/02/13(土) 17:26:11.98ID:D9w2zaJd
>>429
横移動
0433デフォルトの名無しさん2016/02/14(日) 17:30:57.28ID:W3kUmQbm
元は全く同じブックをLANネットワークにつながった数十台の各PCへ複製して
そのファイルを各PCで開き、実行中のブックの特定のセル、
たとえばシート1のa1セルを実行中のPCとは別の1台のPCから
一斉に書き換える方法はありますか?!
0434デフォルトの名無しさん2016/02/14(日) 18:10:30.12ID:76sHC0LF
>>433
不可能ではないけど、PCのリモート操作までVBAでやるのは流石に無理があるかと
どちらにしてもあなたのスキルでは無理なので、不可能だと思っておいて問題ないと思います
0435デフォルトの名無しさん2016/02/14(日) 18:53:22.85ID:33hAgmw5
セルの幅や行の高さがいろいろな人が触ってばらばらになってしまったシートを
全セル標準値に戻してそろえるにはどうすればいいのでしょうか?
0436デフォルトの名無しさん2016/02/14(日) 19:13:37.67ID:MGHNtECJ
Cells.RowHeight = ActiveSheet.StandardHeight
Cells.ColumnWidth = ActiveSheet.StandardWidth
0437デフォルトの名無しさん2016/02/14(日) 19:23:47.28ID:0n9Q+x/K
>>435
'標準値セット例
セル高 = 18.75: セル巾 = 8.38

Cells.RowHeight = セル高
Cells.ColumnWidth = セル巾

で、いいんじゃないかな?
0438デフォルトの名無しさん2016/02/14(日) 19:29:20.10ID:9DC2KLdY
>>433
クラウド使えばいいんじゃね?
0439デフォルトの名無しさん2016/02/14(日) 19:48:40.04ID:Bsnhcx6p
>>433
そもそも複製した時点で、別のPCのファイルだから

特定の環境下でのやりようはあるけど
別のPCのファイルを勝手に書き換えるとか
別のPCで動いてるアプリケーションを勝手に調べて操作するとか
ウィルス作れっていってるようなもんだぞ

PCごとに独自の値入れたいなら、そのエクセル表開いたときに、自分で値をセットさせろよ
04404352016/02/14(日) 20:12:33.78ID:n+eEHjjo
>>436
>>437
綺麗さっぱりうまくいきました。ありがとうございました。
0441デフォルトの名無しさん2016/02/14(日) 20:31:52.43ID:JWs7OI3x
>>433
>>439
悪く言えばデータ改ざん
よく言えば高速データ修正、もしくはリアルタイムデーター反映。
0442デフォルトの名無しさん2016/02/14(日) 21:24:40.80ID:LvmVag53
>>433
ない
0443デフォルトの名無しさん2016/02/14(日) 21:49:07.58ID:fWfpYw+M
>>433
Google Spreadsheeetつかいましゅおう
0444デフォルトの名無しさん2016/02/19(金) 08:12:35.53ID:997QLUzg
994 デフォルトの名無しさん sage 2016/02/18(木) 23:08:06.79 ID:XVu7nbkc
ですが

入力データを配列化して
出力する場合
出力内容も配列化するのは良いのですが
出力データが入力データの行数分あり、列は10列有ります
その場合配列は
ReDim Preserve 出力(1 to 10, 1 to 出力行数) 
とループさせるため
行と列が逆になります

また出力シートは結合&結合と殆ど結合部が多いためこの場合の処理はどのようにすればよいですか?
0445デフォルトの名無しさん2016/02/19(金) 14:52:06.71ID:u5XrM1VP
>>444
行と列を入れ換えるのはTRANSPOSE関数
結合セルはどうにもならんから使うな
0446デフォルトの名無しさん2016/02/21(日) 19:55:24.57ID:aS5vlmAR
こうこうこういう処理をするという一連の論理は頭の中で完成していても
細かいコードの設定で苦戦してなかなか完成しないVBAコードは一体いつ頃完成しますか?
0447デフォルトの名無しさん2016/02/21(日) 21:10:34.54ID:/SUbbn4D
もうできました
0448デフォルトの名無しさん2016/02/21(日) 21:47:53.40ID:glOWtbGl
プルダウンリストで○と×を入力していって、○が4つ並んだときに◎に書き換えるって処理をやりたいんだけどどうすればいいのかな
0449デフォルトの名無しさん2016/02/21(日) 22:45:20.60ID:ecxoMOz6
>>447
まだですよ。
0450デフォルトの名無しさん2016/02/21(日) 23:10:47.34ID:ecxoMOz6
VBAを使い始めてシートの隅から隅まで使わないと気が済まなくなった
処理するデーターサイズがギガバイトを超えさらに処理の限界まで増え続けている。
すっかりVBAの世界に取り込まれてしまったのである。
0451デフォルトの名無しさん2016/02/21(日) 23:22:07.76ID:1BlEdgfr
VBA楽しいわ。
ブラウザのデータも操りたくなってきたけど。
0452デフォルトの名無しさん2016/02/21(日) 23:43:02.05ID:Hs+uz8xq
完成はまだまだです
0453デフォルトの名無しさん2016/02/22(月) 03:54:39.16ID:5+K0WvWu
一体どうすればいいんだ!!
0454デフォルトの名無しさん2016/02/22(月) 05:11:37.73ID:PrDTx2rK
寝て待て
おやすみ
0455デフォルトの名無しさん2016/02/22(月) 07:08:32.06ID:m/JWK4nb
ExcelなのかVBAなのか
0456デフォルトの名無しさん2016/03/04(金) 19:36:43.34ID:LfEXNJh+
vbaからクラウドってどうやって使うの?
0457デフォルトの名無しさん2016/03/04(金) 19:44:20.88ID:GmTfhVnc
>>456
OneNoteのこと?
0458デフォルトの名無しさん2016/03/05(土) 15:01:46.19ID:JVq4KSH+
>>457
お前にとってクラウドってonenoteしか思いつかないのか?アホぅが
0459デフォルトの名無しさん2016/03/05(土) 17:39:47.21ID:yKlKIkiJ
>>458
わからないなら無理してレスしなくていいからね
わかるなら質問者にレス返してあげてね
0460デフォルトの名無しさん2016/03/05(土) 18:15:33.70ID:IIo9vGFa
>>458
無知な私に正確なクラウドの定義を教えてください。
0461デフォルトの名無しさん2016/03/05(土) 18:58:24.25ID:NhCRzDCm
そもそも >>456 は何が知りたいんだろう?
クラウドを使ったどんな作業をVBAで行いたいんだろう?
0462デフォルトの名無しさん2016/03/05(土) 21:11:02.82ID:y1xlLTCT
天地をクラウド
0463デフォルトの名無しさん2016/03/05(土) 22:57:32.61ID:CiLsOCtk
>>462
あんた、天地を喰らう (本宮ひろ志)と言いたいだけだろw 
0464デフォルトの名無しさん2016/03/06(日) 07:20:33.15ID:3Tl22F55
VBAを早くマスターするには何をやればいいのでしょうか?

コードの構築スピードを高速化するにはどうすればいいのでしょうか?
0465デフォルトの名無しさん2016/03/06(日) 08:31:40.58ID:0HowaBES
>>464
あなたにとってのマスターの定義を教えて
0466デフォルトの名無しさん2016/03/06(日) 08:33:19.00ID:CI3ynwI1
>>456
Cloud→雲を意味し、インターネットを介して不特定多数の人間と情報を共有する事。つまりインターネット。
Crowd→群衆を意味し、インターネットを介して不特定多数の人間と成果を共有する事。つまりインターネット。

>>464
まずは論理演算回路について学びましょう。
0467デフォルトの名無しさん2016/03/06(日) 09:06:09.93ID:fNb9c7ql
>>459
馬鹿は口を閉じてろwww
ここはお前のようなサンデープログラマが来ていい場所じゃねけんだよwww失せろクソニート
0468デフォルトの名無しさん2016/03/06(日) 09:10:18.94ID:fNb9c7ql
>>460
クラウドの定義www
あのさぁ、さも世間で使われてる言葉だからといって、クラウドっていう定義があるなんて主張するヴァカな若造がいるが、

結局のところASPでしかないよwwこの業界お得意のペンキ塗り変えだから。過去に同じことやってしくじったものを、こうして時代が進んでから名前だけ変えて出てきただけ。

なので
>>466の説明はふざけてるようで実に正しい。
0469デフォルトの名無しさん2016/03/06(日) 12:17:52.65ID:ZYabfviO
>>468
じゃあ、onenoteもクラウドで全然問題ないじゃん。
0470デフォルトの名無しさん2016/03/06(日) 13:55:10.16ID:M6TE/8/x
>>464
コードを素早く構築するには、検索のスキルを上げてコピペの練習をする

まずは Ctrl+C Ctrl+V の素振りを1000回ずつ
0471デフォルトの名無しさん2016/03/06(日) 14:52:21.79ID:/SNQZrkH
>>470
Ctrl+Aも必要だな。
あとは必要なコードを素早く選択するマウススキル。
0472デフォルトの名無しさん2016/03/07(月) 03:40:36.66ID:I68FUxlo
主要なコードはすべて暗記していてブラインドタッチで打てるのですか?
0473デフォルトの名無しさん2016/03/07(月) 08:04:45.07ID:kMlZQkyO
>>472
ifとかforとかでしょ?
なんとかブラインドタッチできるよ
0474デフォルトの名無しさん2016/03/08(火) 22:20:39.87ID:xVS4dlwX
通勤電車で書きさしの複雑なVBAコードを書こうとしたら数分で頭痛がしはじめて吐き気がしてものすごく気分が悪くなったが
Windowsタブレットで歩きながらVBAを書く人も居るのですか?
0475デフォルトの名無しさん2016/03/08(火) 22:27:29.05ID:xVS4dlwX
>>474
入れ子スパゲッティーのコードを少しでも早く完成させようと挑戦してみたけどで者の中では無理だったw
0476デフォルトの名無しさん2016/03/08(火) 22:28:02.34ID:xVS4dlwX
>>475
で者>電車・・
0477デフォルトの名無しさん2016/03/09(水) 00:20:03.72ID:hv5xxYdT
>>474
歩きスマホするやつって馬鹿なんだろうなぁ、としか思わない
0478デフォルトの名無しさん2016/03/09(水) 01:41:02.11ID:ISN2ur/+
PA3KX32SAで立ちながら電車で普通にコーティングしてるよ
Officeはあんまメモリも食わないのだ
一応タブも持ち歩いてるけど入力はこいつかなわない
0479デフォルトの名無しさん2016/03/09(水) 02:19:45.35ID:SvmwH2ly
a,b,c,d,eの.xlsbファイルの中から好きな奴を選択(複数個)、ファイル名を取得


例えばa,c,eを選択したとして、それらをa'c'e'へ編集する(編集内容はa〜eそれぞれ違う)

そして編集したa'c'e'の内容を全部一纏めにした新規Book.xlsxを作成し、適切なフォルダへ保存

この場合に「a,b,c,d,eのファイルを任意で選択」を一括でやる方法を探すも見つからないです。
1番近いものとしてはフォームになるんですかね?
ただ、フォームってセルは取得できるけど、ファイルを取得出来ないという認識です(調べ方が足りなかったらすいません)

フォームのようにわかりやすいビジュアルで、ファイルを各々自由に選択できて、それを既に作成済みのa〜eそれぞれ用の編集をするマクロを適用させて...

みたいなことを考えているんですがそれは実現可能なんでしょうか?
可能なのであればヒントを教えて下さい。
正直今日4時間程ずっっとこの事を調べているのですが、全く求めている情報に出会わず結構キツいです。

VBA素人の分かりづらい文章で申し訳ありませんが、よろしくお願い致します。
0480デフォルトの名無しさん2016/03/09(水) 02:45:13.72ID:IJoNdRop
http://officetanaka.net/excel/vba/tips/tips154.htm
>FindFileメソッドで表示されるダイアログボックスでは、標準で複数のファイルを選択できます。

基本的に手動で出来ることはVBAで再現可能
0481デフォルトの名無しさん2016/03/09(水) 03:30:31.57ID:WoEFK+d7
歩きコーディングにはコードな技術が必要だよ
0482デフォルトの名無しさん2016/03/09(水) 03:33:45.90ID:e2Rh/cBQ
>>479
一括で選択ってのが何をどうしたいのかわからん
編集ってのも何をどうしたいのかわからん
ヒントって言っても、どこまで出来て、何ができないんだ


GUIの話で、そのa-eまでのファイルが固定なら
まあ俺ならa-eまでチェックボックス並べるか、複数選択可能にしたリストボックス使うかだな
フォーム使っても良いし、シートに直接でもまあ良いけど
0483デフォルトの名無しさん2016/03/09(水) 07:07:31.73ID:YFJZTM+A
超画期的なコードをせっせと開発しても
クラウドにコードを保存しとくとマイクロソフトに盗まれるの?
0484デフォルトの名無しさん2016/03/09(水) 08:12:43.22ID:mKSHkmJs
>>479
VBAより日本語の勉強を先にしたほうがいいかと…
まったく意味がわからない
0485デフォルトの名無しさん2016/03/09(水) 08:43:12.15ID:Wz7Xg53l
>>484
シートをブックにまとめたいんやと思う
0486デフォルトの名無しさん2016/03/09(水) 08:43:47.23ID:402B4R35
>>483
盗む価値があるようなコードを書くやつはハナから無料のクラウドなんか利用しないってMSも知ってる
0487デフォルトの名無しさん2016/03/09(水) 12:24:56.91ID:vZPnGsh0
>>482
すいません、色々と詰め込み過ぎて訳わからん説明になってますよね。

私が聞きたいのは「ファイルの選択方法」の内容で、
>>480様が言うようなGetOpenの方法ではなく、入力フォームのような物(GUI)で使用者にファイルを選択させる方法が無いかどうかを聞きたかったのです。。。


各ファイル種別ごとの編集マクロはなんとか作成済みなのですが、今の状態だとa〜eまでファイルを編集したい時に、マクロ起動ボタンを選択するファイルの数だけ押しその都度マクロが動いているのですがそれをなんとか1ボタンクリックに纏められないかなぁと。

ちゃんと説明出来ないので、◎◎って言う機能を使うとうまく行くんじゃないか?とヒントを頂ければ自分でググって行ける所まで行くつもりですが、今回は何を調べて良いのかが分からなくて手詰まりとなっています。


〉〉a〜eのファイルについて
・ファイル形式は全て.xlsb
・不定期で第三者により更新され、ファイル名が20160301_a.xlsb→20160309_a.xlsbと日付部分が変更される(中身も変わりますがその辺はマクロ作成済みです)


またクソ長文になりましたが、回答になっていれば幸いです
0488デフォルトの名無しさん2016/03/09(水) 12:38:01.11ID:mKSHkmJs
>>487
第三者に説明するのが下手すぎる
だから検索キーワードも適切じゃないから、やりたいことがヒットしないんだと
0489デフォルトの名無しさん2016/03/09(水) 14:39:51.50ID:cAaPuGj+
>>487
ごめん、まだわからん
>>482 が書いている方法(チェックボックス or リストボックス)でファイル選択して
選択されたファイルの個別VBAを順次実行するVBAを「実行」ボタンか何かに割り当てる、
じゃだめなの?
0490デフォルトの名無しさん2016/03/09(水) 14:52:53.10ID:uBQgd+CU
>>487
フォームを立ち上げたらaからeまでの
値を任意選択ができるようにして実行ボタン押させる

実行ボタンにプロシージャを割り当てて
そこで選択肢に応じて開くファイル、実行するマクロを決める処理をかけばいいやん。
0491デフォルトの名無しさん2016/03/09(水) 15:10:13.47ID:7xGDnHuU
アスペの御手本みたいな説明だなw

複数の選択されたBookに組んであるマクロを動かすフォームが作りたいってだけじゃないのか
0492デフォルトの名無しさん2016/03/09(水) 16:34:28.81ID:e2Rh/cBQ
>>487
チェックボックス とか リストボックス 複数選択 とかでどうだって言ってんだが
チェックボックスとかリストボックスとかがどういう物かわからんのか?
まあそれでもググればだいたいわかりそうだが

他人の話をちゃんと聞かない人なのか
0493デフォルトの名無しさん2016/03/09(水) 20:28:21.36ID:fhz9XN7U
>>487
Sub test()
c = test1
If Not IsEmpty(c) Then
For Each x In c
Debug.Print x
Next
End If
End Sub

Function test1()
With Application.FileDialog(msoFileDialogFolderPicker)
If .Show Then test1 = test2(.SelectedItems(1))
End With
End Function

Function test2(x)
Dim c As New Collection
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.folderexists(x) Then
For Each x In fso.getfolder(x).Files
c.Add x
Next
End If
If c.Count Then
ReDim t(1 To c.Count)
For i = 1 To c.Count
t(i) = c(i)
Next
End If
test2 = t
End Function
0494デフォルトの名無しさん2016/03/09(水) 21:02:11.93ID:qng6hFpE
先入主が思考の迂回や飛躍を妨げる
0495デフォルトの名無しさん2016/03/09(水) 21:06:27.41ID:fhz9XN7U
>>479を読む限りはファイルパスの取得方法を知りたいという事だから、

Function test1()
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = True
If .Show Then
ReDim c(1 To .SelectedItems.Count)
For i = 1 To .SelectedItems.Count
c(i) = .SelectedItems(i)
Next
End If
End With
test1 = c
End Function

これで良かったわとちょっと後悔。
0496デフォルトの名無しさん2016/03/09(水) 23:02:30.94ID:aaVDZq0J
何度も何度も申し訳ないです。
リアルでも誰かと専門的な話をする時は図を描く用のノートが手放せないダメな奴です。

見た感じ>>495さんの言っている事が、私が言いたい事と概ね同じです。
(コードの内容はまだ理解できていませんが)

>>492
わかりづらくて申し訳ありません。

■一括で選択ってのが何をどうしたいのかわからん

>>487の内容になりますが
>>480様が言うようなGetOpenの方法ではなく、入力フォームのような物(GUI)で使用者にファイルを選択させる方法が無いかどうかを聞きたかったのです。。。

■GUIの話で、そのa-eまでのファイルが固定なら
まあ俺ならa-eまでチェックボックス並べるか、複数選択可能にしたリストボックス使うかだな
フォーム使っても良いし、シートに直接でもまあ良いけど

>>487での内容になりますが
〉〉a〜eのファイルについて
・ファイル形式は全て.xlsb
・不定期で第三者により更新され、ファイル名が20160301_a.xlsb→20160309_a.xlsbと日付部分が変更される(中身も変わりますがその辺はマクロ作成済みです)
↑a-eまでのファイルが固定ではなく、ファイル名に変更のかかるものだと言いたくてこういう書き方をしました


というか私がこの板で質問するレベルに到底達していないということも良くわかりました。
まだフォームの作成自体よく分かってなくて四苦八苦している状態ですので、
マクロ作成は一旦止めて、そもそもであるフォームの勉強をやってある程度の知識を付けてから
また出直してきます。

皆様のお時間を割いてしまい大変申し訳ありませんでした。
0497デフォルトの名無しさん2016/03/09(水) 23:16:42.62ID:fhz9XN7U
VBAと全然関係ないけど、
相手の時間を割く事は出来ないから「お時間を割かせてしまい」だけど、これはちょっとおかしい。

今回の流れの場合は、

解決したなら「お手間を取らせてしまい大変申し訳ございません」
解決していないなら「ご尽力いただきありがとうございます」

辺りが適切かな。
煽りじゃなく、本当に日本語の勉強すると色々と良くなると思うよ。
あとはPREP法やSDS法を覚えてみると質問の整理に役立つんじゃないかな。
0498デフォルトの名無しさん2016/03/09(水) 23:57:04.42ID:e2Rh/cBQ
ファイル名の取得はGUI関係ないわけだが...

まあ答える方も別に強制されてるわけではなく趣味で答えてるだけだから
スレの趣旨にそう内容なら気にする事はないんじゃね
0499デフォルトの名無しさん2016/03/10(木) 00:04:03.03ID:oSAQRbc8
>>497
普段敬語を全く使わないので変な日本語になっていると思われますので、その辺も含めて、ちゃんとした敬語で意思疎通できるように日本語を勉強します。

マジで手間取らせてスマンカッタ!
もう少し勉強してからまた質問するからその時はまたよろしくな!

って言ってたつもりでした。

皆さんご親切にありがとうございました。
0500デフォルトの名無しさん2016/03/10(木) 00:09:13.88ID:g9IYMMnQ
>>496
うーん、、専門的な話でもなく、VBAのスキルや知識の話でもなく、それ以前の話をしてるんだけどなあ
要件が全くわからない
0501デフォルトの名無しさん2016/03/10(木) 00:16:56.97ID:n+nn3+Tv
どうみたって要件なんてレベル以前に、やりたい事の具体的なイメージすらまだ固まってないな
>>495で良いなら、>>480で話が出てるが>>487で否定してるのはなんだったんだと
0502デフォルトの名無しさん2016/03/10(木) 00:26:55.07ID:b4xwXnri
ユーザ操作でも処理でも伝えにくい場合は箇条書きにするといい。

1、シート上のボタンを押すとフォームを起動する
2、フォーム上の実行ボタンを押す
とリストボックスで選んだファイル名のファイルをopenする

とか
0503デフォルトの名無しさん2016/03/10(木) 01:02:21.84ID:uekE/fXp
論理演算とは一体何ですか?
0504デフォルトの名無しさん2016/03/10(木) 01:52:05.62ID:n+nn3+Tv
>>503
ググればいくらでも解説でてくると思うんだが、なぜここで聞いてるの?

まあVBAに限るなら、論理演算子を使った演算の事だろうな
ImpとかEqvとか使ったことないけどw
ちなみにVBAの変数はNullを取り得るので、油断すると思わぬ結果になる事がある
0505デフォルトの名無しさん2016/03/10(木) 05:39:29.64ID:uekE/fXp
>>504
ぐぐってウィキペディアを見ましたがちんぷんかんぷんだったのでダメ元でここで聞いてみた次第です。
少しわかったような気になれました。ありがとうございました。
0506デフォルトの名無しさん2016/03/10(木) 06:18:03.43ID:6K4R3xGy
論理演算はC/C++/C#/Java辺りで一通りマスターした方がいいぞ
VBAは独自仕様すぎるのと掘り下げた情報が手に入り難いから益々混乱するよ
Cとかやった後VBAで同じことやろうとしてあれ?って絶対なるから
0507デフォルトの名無しさん2016/03/10(木) 06:25:42.65ID:YNiJ5d84
Javaムズいわ。
クラスがしんどい。
0508デフォルトの名無しさん2016/03/10(木) 06:36:55.93ID:YDCDLTcE
今のご時世、Cやるようなヤツは何も言わなくても低レベルの知識がしっかりしてると思う。

「Cなんてやる必要あるの?」なんて言ってJSやらPHPやらから始めちゃうヤツが問題で、
普段は低レベルな問題に触れないし考えもしないから、いざという時のアクシデントにめっちゃ弱い。
0509デフォルトの名無しさん2016/03/10(木) 07:16:55.50ID:oi9Gk0D0
>>506
> Cとかやった後VBAで同じことやろうとしてあれ?って絶対なるから
ないのは短絡評価位だろ
モダンではないとは思うけど、別に独自と言うほどのものでもない
0510デフォルトの名無しさん2016/03/10(木) 08:00:38.69ID:qo9r6ONf
ExcelVBAのスレでそんな小難しいこと語られてもなぁ
0511デフォルトの名無しさん2016/03/10(木) 09:21:37.13ID:9Fgdi1o8
Integerのビットシフトができないんです!!!111 ><
0512デフォルトの名無しさん2016/03/10(木) 17:56:01.09ID:n+nn3+Tv
>>506が思う論理演算ってなんだ
VBAの独自仕様って何で、cとどう違うか教えてくれ

ショートサーキット見たいな過程の違いとか
ビットシフト見たいな論理演算じゃない奴の話ならいらんぞ
0513デフォルトの名無しさん2016/03/10(木) 22:07:00.76ID:6K4R3xGy
>>512
ああ俺の言いたいのは論理演算を含むビット演算全般ね
でも論理演算が出てくる場面ってシフトローテートも込みだと思うけど気にならんのかなあ
独自仕様は自分でNull怖い(>>504)とか書いてるじゃん
そういうやつよ
0514デフォルトの名無しさん2016/03/10(木) 22:25:10.11ID:6K4R3xGy
ちょうど他所のVBAスレで今更な謎仕様が話題になってるけど
VBAだけやるってほんとやばいんじゃないかこれ
0515デフォルトの名無しさん2016/03/11(金) 03:12:24.51ID:hoUEJahG
>>513
ビット操作に論理演算を含むのは確かだけど
少なくとも論理演算にシフトやローテートを含むのは話がおかしい
そもそもVBAに論理演算はあってもビットシフトする命令とか無いしな

Nullの話は、2値論理ではなく3値論理だって話で、独自でも何でもないわけだが
まあ、SQL以外で3値論理な言語ってあんまり見ないけど

>>514
VBAしかやらないなら、仕様を正しく理解してさえいれば、その仕様が独自だろうがなんだろうがどうでもいいだろ
VBAでは他の言語での経験から想像した動作しなかったり、VBAの経験が他の言語で通用しないのは困るかもしれんが
0516デフォルトの名無しさん2016/03/11(金) 06:38:14.90ID:5X9ZM+KD
> ちなみにVBAの変数はNullを取り得る
意味わからん
0517デフォルトの名無しさん2016/03/11(金) 07:48:35.96ID:xzuNkEdQ
VariantはVBA(VB)独自の機能じゃない
ほかにも使える処理系はいくつかあって構造は完全に同じだから、いろいろな型のデータを相互にやりとりできる
0518デフォルトの名無しさん2016/03/12(土) 02:24:37.78ID:4xL8NTYB
>>513
今はシフトローテートと言うのか。
俺らの時代はローテートシフトと言ってたな。

あんなキャリーフラグ絡みの命令、
アセンブラにしかないと思ってたが
今調べてみたらC++にもあるんだな。
びっくりしたわ。
0519デフォルトの名無しさん2016/03/12(土) 03:42:54.08ID:L1DCwZtH
>>518
キャリーってか、符号ビットの取り扱いとかね
VBAにビットシフトが無いのはつまり
メモリレイアウトを意識しない(させない)言語で考えるような事じゃないって話だろ

Cはアセンブラ替わりに使う想定の言語だからなぁ
C++はCの上位互換目指してるんじゃないの?よくわからんが
0520デフォルトの名無しさん2016/03/12(土) 10:16:25.43ID:ZuDRYyOf
>>519
CがOSとその周辺の構築を主眼にしていたのに対してC++はOSが存在することを前提にしているのが違いかな
0521デフォルトの名無しさん2016/03/12(土) 13:14:04.33ID:2d1xhU2z
>>518
> 今調べてみたらC++にもあるんだな。
はあ?
キャリーを扱える高級言語って TL/1 しか見たことないが
0522デフォルトの名無しさん2016/03/12(土) 13:21:18.17ID:4xL8NTYB
>>521
はぁ?
じゃなくて、ローテートシフトの話。
誰がキャリーフラグ直接扱えると言ったよ。
よく読め。
0523デフォルトの名無しさん2016/03/12(土) 13:42:30.89ID:2d1xhU2z
>>522
> あんなキャリーフラグ絡みの命令、
> アセンブラにしかないと思ってたが
> 今調べてみたらC++にもあるんだな。

で、C++ に何があるって?
0524デフォルトの名無しさん2016/03/12(土) 13:50:16.58ID:4xL8NTYB
>>523
文盲かw
ローテートシフトって何べん言えば分かるんだ?
ひょっとして日本人じゃないのか?
0525デフォルトの名無しさん2016/03/12(土) 14:12:27.70ID:2d1xhU2z
C++ にはローテートの機能はないし、C++ のシフト演算子はキャリーフラグなんて関係ない

で、調べたら C++ にあったんだろ? w
それ書いてくれよ
0526デフォルトの名無しさん2016/03/12(土) 14:30:59.02ID:4xL8NTYB
>>525
https://msdn.microsoft.com/ja-jp/library/a0w705h5(VS.80).aspx
0527デフォルトの名無しさん2016/03/12(土) 16:24:58.95ID:Xp/JGjcG
>>526
ベンダー固有のライブラリー w
そりゃなんでもありありだわな
0528デフォルトの名無しさん2016/03/12(土) 17:14:49.50ID:YrRAz0CD
ふふライブラリなぞ使わずともC/C++には淫乱あせんブラという卑猥な手段があるんだが
まあCだけでもローテートはこんな感じで書けるし
i = (i << 1) | ((i & (1<<31)) != 0); // ROL
i = ((unsigned)i >> 1) | ((i<<31) & (1<<31)); // ROR
0529デフォルトの名無しさん2016/03/12(土) 17:29:54.28ID:YrRAz0CD
ROLはこっちのが対称的だな
i = (i << 1) | (((unsigned)i>>31)&1); // ROL
0530デフォルトの名無しさん2016/03/12(土) 18:12:02.13ID:2d1xhU2z
書けると言うだけなら VBA でも書けるけどな
0531デフォルトの名無しさん2016/03/12(土) 18:31:38.66ID:YrRAz0CD
>>530
じゃあついでに上をそのまま使うんじゃあんまりだしマクロで隠蔽して
おまけにシフト量も右辺で指定できるようにしとくか
#define ROL(i, m) (i << m) | (((unsigned)i>>(32-m))&((1<<m)-1))
#define ROR(i, m) ((unsigned)i >> m) | ((i<<(32-m))&(((1<<m)-1)<<(32-m)))
あとはアーキテクチャ毎にこっそり淫乱仕込めばもうこれ区別付かないわ
これがC/C++作法だよ
VBAとはできる事の次元が違うのが少しは判ってもらえるかなあ
0532デフォルトの名無しさん2016/03/12(土) 18:35:23.36ID:oKco5pfl
イミディエイトとは一体何を意味するのですか? 日本語の意味と関係があるのですか?
0533デフォルトの名無しさん2016/03/12(土) 18:38:20.17ID:YrRAz0CD
ちなみにこれ即興で書いたけどVBAでどんだけ時間掛かるのかよく判らん
ぜひ書いてみてね
0534デフォルトの名無しさん2016/03/12(土) 18:43:04.68ID:2d1xhU2z
> 今調べてみたらC++にもあるんだな。
一体 ID:YrRAz0CD は何を調べたんだろう...
バカにしか見えない
0535デフォルトの名無しさん2016/03/12(土) 18:44:03.28ID:2d1xhU2z
あと、キャリー云々とか言ってたし...
0536デフォルトの名無しさん2016/03/12(土) 18:46:18.96ID:YrRAz0CD
>>534
そいつとは別人だよ
IDなんか気にしちゃダメよ?
0537デフォルトの名無しさん2016/03/12(土) 19:52:14.26ID:yPhuk7hZ
イミディエイトは何の意味でぃすか?!
0538デフォルトの名無しさん2016/03/12(土) 20:04:13.36ID:L1DCwZtH
>>532,537
イミディエイトはすぐにとか即時とかいうニュアンスだが
単語だけ出して訳を聞いてもあまり意味がありません
どういう文脈や使われ方したかで、使うべき訳は変わるから
0539デフォルトの名無しさん2016/03/12(土) 20:23:00.79ID:L1DCwZtH
>>521
キャリーを扱うとか言っちゃうと、オーバーフローエラーのハンドリングはキャリーを扱ってると言えるわけで
まあ、キャリーした値の情報は捨てられてるけどw

>>522
キャリー=キャリーフラグの話ではないと言うのはその通りなんだが
そもそもお前がキャリーフラグうんぬんって言い出した話
ビット演算でキャリーしたビットの扱いと、キャリーフラグの扱いと、ちゃんと区別しろや
CPUがローテートにキャリーフラグ使うとしてもそれはコンパイル後のアセンブラでの話
0540デフォルトの名無しさん2016/03/12(土) 20:28:45.91ID:2d1xhU2z
オーバーフローとキャリーの区別すらつかない奴がいるのか w
0541デフォルトの名無しさん2016/03/13(日) 00:06:53.99ID:1q/Jd+xj
キャリーオーバーなら知っている
0542デフォルトの名無しさん2016/03/13(日) 06:54:59.87ID:lSMOH+xf
またC++か
0543デフォルトの名無しさん2016/03/13(日) 11:08:11.87ID:0Q357Me9
ExcelVBAスレに来ていいカッコしたいのん?
でも僕たちは理解できないから来なくていいよ
0544デフォルトの名無しさん2016/03/13(日) 18:23:28.87ID:ufPFt9Kd
>>533
たかがローテートだと思ってやってみたけど途中で諦めた
書けない事はないんだろうが、VBAだとかなり面倒なのは判った
0545デフォルトの名無しさん2016/03/13(日) 18:43:32.64ID:Wv1UMaca
VBAに限らず、そもそもローテートの使いどころがわからない
0546デフォルトの名無しさん2016/03/13(日) 20:45:45.82ID:E6ThwxxZ
VBAの達人になるには具体的に何をすればいいですか?
0547デフォルトの名無しさん2016/03/13(日) 21:17:49.68ID:59SmyVWr
>>546
スルースキルを身につける
0548デフォルトの名無しさん2016/03/13(日) 22:19:19.26ID:5uscjK7F
>>546
よき師に巡り会う 巡り会えるまでは流浪に流浪を重ねる 放浪することで見る目は鍛えられる
考える力も養える よき師かくだらない師かどうでもいい師かを見極められるようになる

トライ&エラー スクラップ&ビルド 椅子に腰掛けてお利口さんで待ってても向こうからは決して来てはくれない
0549デフォルトの名無しさん2016/03/14(月) 00:31:53.69ID:vT6mz4Mt
>>544
数値のままだと符号ビットが邪魔するんだよな
文字列に変換すれば簡単なんだけど、数学的に解決できないと負けた気がする
0550デフォルトの名無しさん2016/03/14(月) 05:40:06.04ID:813TYYJm
どうせシフト命令はないんだから、素直に文字列にするのが楽な気がするが
ビット演算とかVBAでやるような処理じゃない

Dec2Binとかいう便利なワークシート関数あるなと思ったけど
10ビットって何その中途半端な桁数w
Hex2Binは40ビット符号だが指定できる数値は1FFまでとかもう何考えて作ってるんだよこれ

Dec2Hexで16進にしてバイトかニブル単位に切ってHex2Bin...
VBAなしでもできる気がしてきたなw
0551デフォルトの名無しさん2016/03/14(月) 05:51:57.54ID:vvpf8bCN
質問です。
プログラムはどこで見れますか?
0552デフォルトの名無しさん2016/03/14(月) 05:53:21.76ID:vvpf8bCN
net以外でもいいですが。
みなさんはどこ移転してますか?
0553デフォルトの名無しさん2016/03/14(月) 05:54:57.02ID:huhKpIQ6
Dec2Hexとかバイナリ解析用でシートに情報ぶちまけた時くらいしか使わなかったな。

>>551
Alt+F11
0554デフォルトの名無しさん2016/03/14(月) 08:23:20.24ID:DzDVqAyb
ローテートよりシフトの方が欲しい
Cにも同じ命令が無いってことは元々需要が低いんだろう
0555デフォルトの名無しさん2016/03/14(月) 10:32:55.61ID:813TYYJm
Cにはシフト命令はあったと思ったが
算術シフトか論理シフトかはしらんが

Cは低レベルな処理ができるように設計された言語だから
VBAのような高級言語と用途や重要を一緒にはできんだろ
0556デフォルトの名無しさん2016/03/14(月) 11:19:20.46ID:vT6mz4Mt
Cには論理シフト演算子ならあるけどシフト命令はない
算術シフトやローテートもできない
みんなライブラリで対応

VBAでシフトやローテートするライブラリ、軽くぐぐってみたけど意外と見つからないもんだな
0557デフォルトの名無しさん2016/03/14(月) 20:14:39.14ID:iw5fwB6n
>>556
> VBAでシフト
符号考慮しなくていい範囲なら * 2 とか \ 2 でいい

> ローテート

需要がない
0558デフォルトの名無しさん2016/04/03(日) 10:00:14.45ID:qNxnHYw6
社内ライブラリの管理をやらされるかもしれません。
共有ドライブにソースコードを置くだけで、アナウンスすれば誰でもコミットできる自由な運用になってます。
ただ新規ファイルがあると管理者がコメントするみたいな文化があって、今はやれオブジェクト指向設計がどうだの
アクセス指定が甘いだの言ってます。
自分は細かいこと言うつもりないんだけど、「VBAだったらこのくらいで十分」みたいな理論武装をしておきたいです。
そのネタになるような情報どこかにありませんか?
0559デフォルトの名無しさん2016/04/03(日) 10:08:02.19ID:1rNeZKaA
>>558
日本語で頼む
0560デフォルトの名無しさん2016/04/03(日) 10:13:35.08ID:jNg4z56f
社内の細かい情報を知らないと何が理論武装のタネになるか分からないからなぁ。

とりあえずMS社が「VBAマクロは個人使用の範囲でしか許可してねぇぞ」って言っているので、
そもそもパブリッシング自体がおかしいという点から構築してみてはどうか。
0561デフォルトの名無しさん2016/04/03(日) 10:21:42.32ID:0ShRbLeI
寝ている間にマクロを走らせて終わったらスリープにするため
Shell ("C:\Windows\System32\rundll32.exe powrprof.dll,SetSuspendState")
最後にこの一文をいれました。朝起きたらシャットダウンされていて電源を入れたら
windowsエラー回復処理の画面が出ました。正しく終了できなかったようです。
一度テストで使ってみたときは問題なくスリープ状態になりました。
考えられる原因を教えてください。使っているのは2003です。
0562デフォルトの名無しさん2016/04/03(日) 10:50:03.47ID:qNxnHYw6
>>559


>>560
パブリッシングってオープンソース公開とかのことでしょうか?
それなりにあるようだけど、厳密にはNGなんですかね?
社内の共有ライブラリ使用はそれに当たらないと思います。
0563デフォルトの名無しさん2016/04/03(日) 11:33:56.24ID:NYnYDVIp
>>561
再現性はあるの?
0564デフォルトの名無しさん2016/04/03(日) 12:02:51.71ID:azZmmaKg
もうやめてエクセルたんのライフはゼロよ
0565デフォルトの名無しさん2016/04/03(日) 13:58:56.46ID:QeeH4oPE
>>561
ちょっと気になるのが
SetSuspendStateって引数が3つあるんだけどそれ指定してないとどうなるんだろうか?って事かな
(影響あるか 無いかは 知らないんけども)

rundll32.exe使わないで 直接API 呼んでみるとか?
0566デフォルトの名無しさん2016/04/03(日) 14:09:55.83ID:7GEw8bGo
>>561
まずはイベントログぐらい見ろよ
0567デフォルトの名無しさん2016/04/03(日) 14:45:21.61ID:0ShRbLeI
>>563
再現性あるかないかわかりませんが、またへんな終了するのはちょっと・・・
>>561
調べたらrundll32.exeは使わないほうがいいみたいなこと言ってる記事があったので
他の方法でやったほうがいいかもしれませんね
0568デフォルトの名無しさん2016/04/03(日) 16:20:41.86ID:0WIWLEdK
VBAで素数を表示する方法は?
0569デフォルトの名無しさん2016/04/03(日) 16:26:00.74ID:1rNeZKaA
>>562
>>1 は読める?読んだ?
0570デフォルトの名無しさん2016/04/03(日) 16:33:07.62ID:NYnYDVIp
>>568
https://ja.m.wikipedia.org/wiki/エラトステネスの篩
0571デフォルトの名無しさん2016/04/03(日) 16:51:01.23ID:0WIWLEdK
Sub test()
  Dim i As Long
  Dim j As Long
  Dim m As Long
  Dim p As Long
  Dim flg As Boolean
  i = 1
  j = 1
  p = 2
  Do
    flg = False
    For m = 2 To Int(Sqr(p))
      If p Mod m = 0 Then
        flg = True
        Exit For
      End If
    Next
    If flg = False Then
      Cells(i, j) = p
      i = i + 1
      If i > Rows.Count Then
        i = 1
        j = j + 1
      End If
    End If
    p = p + 1
  Loop
End Sub

なんだあるじゃないか
0572デフォルトの名無しさん2016/04/03(日) 16:51:38.48ID:CCNxKegs
>>560
>MS社が「VBAマクロは個人使用の範囲でしか許可してねぇぞ」って言っている
ソース教えてくれ
0573デフォルトの名無しさん2016/04/03(日) 16:55:26.57ID:7aucCkXx
2 3 5 7 11 13 17 19 23 29
31 37 41 43 47 53 59 61 67 71
73 79 83 89 97 101 103 107 109 113
127 131 137 139 149 151 157 163 167 173
179 181 191 193 197 199 211 223 227 229
233 239 241 251 257 263 269 271 277 281
283 293 307 311 313 317 331 337 347 349
353 359 367 373 379 383 389 397 401 409
419 421 431 433 439 443 449 457 461 463
467 479 487 491 499 503 509 521 523 541
0574デフォルトの名無しさん2016/04/03(日) 16:58:31.62ID:cnsiNkL/
37558817 38702737 39844619 40992871 42145483 43297901 44451133 45602363 46759481
37558837 38702747 39844621 40992893 42145489 43297907 44451137 45602383 46759487
37558849 38702749 39844627 40992911 42145507 43297909 44451151 45602387 46759507
37558861 38702759 39844633 40992947 42145513 43297949 44451161 45602429 46759511
37558867 38702779 39844643 40992949 42145541 43297973 44451193 45602477 46759519
37558883 38702789 39844667 40993063 42145549 43298023 44451221 45602497 46759523
37558889 38702801 39844723 40993081 42145561 43298027 44451269 45602507 46759541
37558897 38702803 39844733 40993087 42145573 43298051 44451289 45602533 46759549
37558903 38702809 39844747 40993093 42145577 43298053 44451299 45602561 46759553
37558907 38702827 39844757 40993109 42145619 43298063 44451307 45602567 46759567
37558919 38702831 39844759 40993111 42145639 43298069 44451349 45602573 46759579
37558921 38702891 39844769 40993157 42145651 43298077 44451359 45602597 46759591
37558943 38702929 39844793 40993163 42145679 43298089 44451361 45602617 46759597
37558951 38702941 39844813 40993181 42145711 43298111 44451373 45602633 46759649
37558957 38702947 39844867 40993207 42145717 43298113 44451377 45602677 46759681
37558999 38702959 39844877 40993219 42145751 43298117 44451383 45602699 46759693
37559009 38702987 39844891 40993243 42145757 43298149 44451389 45602719 46759729
37559017 38703011 39844913 40993247 42145777 43298159 44451437 45602723 46759747
37559021 38703013 39844921 40993261 42145783 43298161 44451457 45602729 46759751
37559047 38703029 39844939 40993283 42145799 43298183 44451487 45602731 46759753
37559059 38703031 39844963 40993289 42145801 43298197 44451499 45602741 46759787
37559083 38703037 39844997 40993313 42145837 43298209 44451521 45602771 46759789
37559087 38703059 39844999 40993339 42145841 43298219 44451553 45602839 46759813
0575デフォルトの名無しさん2016/04/03(日) 17:00:22.22ID:wlVdQdZF
37558399 38702311 39844229 40992401 42145001 43297313 44450719 45601793 46758973
37558429 38702341 39844241 40992403 42145003 43297357 44450741 45601811 46758979
37558447 38702347 39844247 40992437 42145009 43297361 44450753 45601813 46758989
37558481 38702351 39844249 40992451 42145063 43297379 44450759 45601817 46759003
37558483 38702359 39844253 40992473 42145073 43297391 44450773 45601841 46759007
37558511 38702369 39844261 40992487 42145099 43297393 44450803 45601877 46759051
37558513 38702381 39844267 40992517 42145127 43297417 44450827 45601901 46759079
37558523 38702383 39844291 40992521 42145133 43297439 44450831 45601903 46759081
37558529 38702393 39844307 40992527 42145141 43297469 44450839 45601937 46759117
37558531 38702413 39844309 40992533 42145153 43297537 44450873 45601967 46759121
37558553 38702429 39844313 40992541 42145241 43297543 44450897 45601979 46759127
37558561 38702437 39844327 40992569 42145247 43297571 44450909 45601981 46759151
37558571 38702497 39844351 40992577 42145277 43297591 44450911 45601987 46759187
37558607 38702513 39844367 40992583 42145291 43297613 44450921 45601991 46759199
37558613 38702519 39844369 40992587 42145297 43297643 44450933 45601999 46759213
37558621 38702527 39844373 40992617 42145319 43297663 44450951 45602047 46759217
37558637 38702581 39844381 40992659 42145321 43297673 44450957 45602057 46759261
37558643 38702593 39844423 40992667 42145333 43297679 44450969 45602069 46759301
37558657 38702621 39844433 40992683 42145343 43297693 44450981 45602099 46759319
37558699 38702627 39844439 40992697 42145379 43297703 44450999 45602131 46759327
37558709 38702641 39844451 40992713 42145403 43297711 44451007 45602159 46759373
37558711 38702669 39844477 40992733 42145421 43297741 44451031 45602191 46759387
37558721 38702683 39844513 40992761 42145423 43297747 44451037 45602213 46759411
0576デフォルトの名無しさん2016/04/03(日) 17:01:29.60ID:wlVdQdZF
36415501 37557931 38701931 39843679 40992011 42144607 43296923 44450299 45601459 46758529
36415531 37557937 38701937 39843689 40992023 42144611 43296931 44450317 45601483 46758557
36415541 37557941 38701961 39843701 40992031 42144623 43296937 44450333 45601487 46758583
36415543 37557967 38701969 39843707 40992047 42144629 43296949 44450339 45601519 46758589
36415549 37557979 38702017 39843719 40992059 42144631 43296961 44450369 45601537 46758623
36415573 37558013 38702023 39843731 40992071 42144647 43296997 44450383 45601541 46758637
36415583 37558033 38702033 39843737 40992089 42144667 43297003 44450387 45601559 46758661
36415657 37558039 38702057 39843823 40992113 42144701 43297043 44450389 45601561 46758703
36415663 37558051 38702063 39843871 40992157 42144721 43297061 44450479 45601573 46758707
36415699 37558069 38702071 39843877 40992173 42144731 43297081 44450491 45601579 46758709
36415781 37558121 38702087 39843907 40992179 42144737 43297099 44450501 45601583 46758743
36415789 37558159 38702099 39843953 40992191 42144749 43297123 44450509 45601597 46758779
36415811 37558189 38702101 39843983 40992227 42144757 43297127 44450537 45601603 46758799
36415817 37558201 38702119 39843997 40992241 42144769 43297151 44450543 45601613 46758809
36415843 37558207 38702129 39844001 40992257 42144797 43297153 44450573 45601627 46758827
36415849 37558271 38702141 39844003 40992269 42144803 43297157 44450599 45601639 46758841
36415859 37558289 38702159 39844061 40992277 42144829 43297159 44450603 45601643 46758847
36415861 37558309 38702173 39844097 40992293 42144847 43297169 44450617 45601657 46758871
36415867 37558319 38702189 39844127 40992313 42144857 43297171 44450647 45601681 46758889
36415879 37558327 38702203 39844157 40992317 42144863 43297187 44450657 45601693 46758911
36415903 37558331 38702207 39844177 40992331 42144877 43297213 44450669 45601697 46758913
0577デフォルトの名無しさん2016/04/03(日) 17:25:42.30ID:ht5JUiv7
>>576
何で計算したの?
0578デフォルトの名無しさん2016/04/03(日) 17:28:54.85ID:aDYdS24I
2016年1月の時点で発見されている最大の素数は2^74207281-1
0579デフォルトの名無しさん2016/04/03(日) 18:34:34.79ID:CS1Ci7Ub
VBA初心者です。
エクセルは関数多少理解できるレベルです。

VBAで
所定の時間でPC起動
エクセルソフト起動
通信障害、PCエラーによるフリーズからの
再起動
所定の時間にPCシャットアウト

ここまでVBAで作成できるものなのでしょうか?
自分で作る場合はどんな本やサイトを参考にした方が
よいでしょうか?
VBA入門の本を買っても意味なかったです。
0580デフォルトの名無しさん2016/04/03(日) 18:51:28.81ID:PF4kDmab
VBA最強伝説の始まりだね。
君ならVBAでOSを作ることもキットできるよ。
0581デフォルトの名無しさん2016/04/03(日) 19:03:46.02ID:yFGhuIVe
VBAでも何でもいいがそろそろ時期officeにはモダンなプログラム言語に変更して欲しいな
0582デフォルトの名無しさん2016/04/03(日) 19:05:28.17ID:SmJSd+/B
脳の思考や自我の趣味は一体何ですか?をVBAで作ることは可能ですか?
0583デフォルトの名無しさん2016/04/03(日) 19:09:30.45ID:JMP9uArP
MsgBox "脳の思考や自我の趣味は一体何ですか?"
0584デフォルトの名無しさん2016/04/03(日) 19:30:26.52ID:Xtf6UcRu
>>583
InputBoxで答えを入れられるようにして
0585デフォルトの名無しさん2016/04/03(日) 19:52:09.45ID:wTx+0/AQ
>>581
VB.NET for Applicationとか?
0586デフォルトの名無しさん2016/04/03(日) 19:52:35.70ID:wTx+0/AQ
>>584
ww
0587デフォルトの名無しさん2016/04/03(日) 22:52:23.14ID:kgPLuv2V
if 文で3つのセルの数値が一致したら実行するようにしたいのですが
入れ子にすると実現できるというのはわかるのですが
1つのif で記述する事は可能でしょうか?

(例)
a
1 100
2 500
3 1000

if a1~3が上記の数値なら 
処理実行!
end if

といった感じです。
0588デフォルトの名無しさん2016/04/03(日) 22:54:18.39ID:wTx+0/AQ
>>587
実行って何する気なわけ?
0589デフォルトの名無しさん2016/04/03(日) 22:55:58.30ID:kgPLuv2V
>>588
msgbox "当選おめでとうございます!!!"
0590デフォルトの名無しさん2016/04/03(日) 22:58:41.42ID:kgPLuv2V
>>588
3つが一致したら別表に数値を1追加カウントします。 ただそれだけです。
0591デフォルトの名無しさん2016/04/03(日) 22:59:08.88ID:CCNxKegs
入れ子にしないならAndを使えば良いんじゃないか
0592デフォルトの名無しさん2016/04/03(日) 23:01:00.17ID:NYnYDVIp
>>587
a1=100 and a2=500 and a3=1000
0593デフォルトの名無しさん2016/04/03(日) 23:04:29.41ID:kgPLuv2V
>>591
IF 初心者でしたが 
and!!! こんな便利なコードがあるとは知りませんでした、、、、、、、
ありがとうございました!!!
今まで全部入れ子で書いていてなんてめんどくさいんだと思っていましたが聞いてよかったww
0594デフォルトの名無しさん2016/04/03(日) 23:05:10.90ID:kgPLuv2V
>>592
ありがとうございます。
0595デフォルトの名無しさん2016/04/03(日) 23:08:47.80ID:qNxnHYw6
>>587
数値と決まっているならMinとMaxが一致しているかどうか見ればいいし、個数が増えても対応できる。
効率に関しては
0596デフォルトの名無しさん2016/04/03(日) 23:26:20.09ID:NYnYDVIp
>>595
具体的にはどうなるの?
0597デフォルトの名無しさん2016/04/03(日) 23:37:22.54ID:aDYdS24I
>>593
入れ子の方が処理が速い場合もあるから使い分けような
0598デフォルトの名無しさん2016/04/03(日) 23:44:17.39ID:+WGKAhDO
>>595
この条件のMinとMaxだとエラーだな。
0599デフォルトの名無しさん2016/04/04(月) 00:06:19.85ID:0VnnNKSn
VBAのif文って
if not obj is nothing and obj.hoge=1 then
とかやってもobj.hogeでエラーになったと思うけどどうしてる?
0600デフォルトの名無しさん2016/04/04(月) 00:10:09.18ID:LRW6avp5
入れ子にする
0601デフォルトの名無しさん2016/04/04(月) 00:33:08.12ID:y3eViG9F
ttp://suugleblog.blogspot.jp/2012/02/blog-post_4988.html

こちらのサイトを参考にして、セルに入力した文字を元に、別に用意されているリスト内で部分一致の検索を行い、
条件に一致したものをプルダウンで選択できるようにしたのですが、

スイカ1
スイカ2

のようにリストに入力されている状態で、「すいか」とひらがなで検索をかけると
Tg.Value = Left(strFormula, Len(strFormula) - 1)
の部分でエラーを吐いてしまいます。
Tg.Valueが「すいか」であるにもかかわらず、strFoumulaが空だからです。

strFoumulaが空の場合この処理を飛ばすようにしてエラーはでなくなったのですが、
なぜこうなってしまうのでしょうか‥。VBAの検索でひらがなカタカナは区別されるものだと思っているのですが。
0602デフォルトの名無しさん2016/04/04(月) 00:39:30.58ID:y3eViG9F
なんかちょっと言ってることがわかりにくかったかもしれません

スイカ1
スイカ2

というリストに
Set foundCell = Worksheets(listSheet).Range(strDictionary).Find(What:=matchKey, LookAt:=xlPart)
で「すいか」と検索をかけたのに検索結果がNothingにならないのはなぜなのでしょうか、ということです。すみません。
0603デフォルトの名無しさん2016/04/04(月) 00:48:10.64ID:3/TbxKd+
>>601
> Tg.Value = Left(strFormula, Len(strFormula) - 1)

Left関数の部分が Tg.Value = Left("", -1) と解釈されているからだろう

空文字列の左端から-1個分の文字列など取得できませんということだ
Leftの第2パラメタは0以上にする必要がある
0604デフォルトの名無しさん2016/04/04(月) 01:43:58.21ID:3/TbxKd+
> Set foundCell = Worksheets(listSheet).Range(strDictionary).Find(What:=matchKey, LookAt:=xlPart)
> で「すいか」と検索をかけたのに検索結果がNothingにならないのはなぜなのでしょうか、ということです。すみません。

リンク先のコード試してみたけど Find(What:="すいか", LookAt:=xlPart)の時の
戻り値は正常にNothing返って来るみたいだけどな・・・?

matchKey の変数に Tg.Value の値が代入されて無くて、空文字列("")が入っているとかだったり?
0605デフォルトの名無しさん2016/04/04(月) 16:43:26.72ID:2/+HTPHr
Excel版ズンドコキヨシって誰か解いてる?
0606デフォルトの名無しさん2016/04/04(月) 18:06:50.57ID:hbU7KRZl
yosoでやれ
0607デフォルトの名無しさん2016/04/04(月) 20:55:31.45ID:JdB6FWMO
すみません、どこまで書き出せばいいのかわからないので、
足りなければ教えてください。

分数で表すと、205/65536のつもりでこう書いたのですが、書き方はあってますでしょうか?

ransu = Int(Rnd * 65536)
If ransu < 205 Then
'ransuが205より小さかった時の処理

Endif

乱数発生1兆回させて、205より小さい数を引いた数を数えると、
204.5/65536位の数字になってしまいます。。

ransu = Int(Rnd * 65536)で、発生する可能性のある数字は0-65535の範囲で65536個、
If ransu < 205 Thenで、は205より小さいなので0-204の範囲で205個。

これで、205/65536になるかと思うのですが、
何か違う部分があれば教えてください。
0608デフォルトの名無しさん2016/04/04(月) 21:14:47.06ID:gEoUrpj0
>>607
rndはたしか擬似乱数だから本当の乱数とは違う
若干偏りがあるだろうから
必要な精度を満たしてないかも知れない
0609デフォルトの名無しさん2016/04/04(月) 21:26:39.06ID:UfrC8I0P
>>605
随分前に誰かやってたけど
そのネタ自体今更感がなぁ
0610デフォルトの名無しさん2016/04/04(月) 21:31:09.99ID:aM9lztCf
MTで1億回やったら 204.89371648 だった。
1兆回ならもっと近づくだろうなあ。
0611デフォルトの名無しさん2016/04/04(月) 22:23:43.94ID:JdB6FWMO
>>608
>>610
レスありがとうございます。

という事は、Rndが完璧に理想的な乱数であったと仮定すると、
書き方自体には問題がないということでしょうか。

VBAの範囲だと、あとは試行回数を増やしたり位しかないんでしょうか。
実の所1兆回をワンセットに、10兆回まではやってみたのですが、
各1兆回も、10兆回全部も、大体、204.5/65536位になっちゃうんですよねぇ。。(分子がプラスマイナス0.05位の狭い範囲)

205/65536が204.5/65536であったら、「もう絶対に使えない!」って程ではないのですが、
この辺が、VBAの限界なんでしょうか・・。
0612デフォルトの名無しさん2016/04/04(月) 22:37:50.18ID:gEoUrpj0
>>611
分布が本当の乱数とは違うから試行回数を増やすほどそのズレが顕著になるはず

何処かでより精度の高い乱数発生関数を探すとかかな
0613デフォルトの名無しさん2016/04/04(月) 22:49:12.45ID:4D4rNKnx
Excelでシート1〜シート10のA列の1〜48までのデータを検索して、シート11のAの1から縦に検索したいと思うのですが、使用する構文のヒント頂けませんか?

格納とかの言葉が出てきて、頭を抱えています。

よろしくお願いいたします。
0614デフォルトの名無しさん2016/04/04(月) 23:01:50.27ID:r79ZF9vv
>>613
>>格納とかの言葉が出てきて、頭を抱えています。
EXCELとかVBAとかの以前に 国語(日本語)を勉強する事を勧めます

かく‐のう【格納】
物を一定の場所に納め入れること。

もしも↑の意味は分っている! と言うなら 何に頭を抱えてるの?
0615くだらないことで笑わせてくれ2016/04/04(月) 23:10:38.78ID:roP7eJzV
頼む
0616デフォルトの名無しさん2016/04/04(月) 23:13:05.17ID:LRW6avp5
なんや。
普通にfindメソッド使えばいいやん。
0617デフォルトの名無しさん2016/04/04(月) 23:18:27.67ID:4D4rNKnx
>>616
> なんや。
> 普通にfindメソッド使えばいいやん。


ありがとうございます。
他のサイト等を見てfindメゾットの構文を参考にしながら頑張ってみます。
0618デフォルトの名無しさん2016/04/04(月) 23:47:31.51ID:gEoUrpj0
>>612
http://www001.upp.so-net.ne.jp/isaku/rand.html

ここにあるな
0619デフォルトの名無しさん2016/04/04(月) 23:50:10.44ID:bkbQN8W0
Javaでは、math.random は線形合同法だから偏る

一方、SecureRandom は高品質な乱数で、偏らない。均一
0620デフォルトの名無しさん2016/04/05(火) 01:35:45.86ID:j04nOQVY
excel 2013のrnd関数だと精度改善されてるみたいだ
0621デフォルトの名無しさん2016/04/05(火) 07:55:04.92ID:NnE5DST0
>>612
はー、乱数って難しいもんなんすねぇ・・。乱数だけで本500冊ぐらいかけそうな勢いですね。

>>618
マーベラス!ありがとうございます!これすごいですわ!
10億回*50セットやってみたのですが、かなりいい感じです!
0622デフォルトの名無しさん2016/04/05(火) 08:18:03.56ID:B7swTllr
10兆回ってどれくらい時間かけてんの?
0623デフォルトの名無しさん2016/04/05(火) 09:20:27.31ID:2f62PJsw
>>611
メルセンヌツイスター
使え
0624デフォルトの名無しさん2016/04/05(火) 10:01:51.97ID:B7swTllr
>>611
>>623

>>610
0625デフォルトの名無しさん2016/04/05(火) 11:10:22.88ID:JHqiOWEg
100万セルオーダーのデータをあるブックからあるブックに転記する際、最も高速な方法はどのようになるでしょうか
現在は配列に入れてRange(,)に代入してるんですけど
0626デフォルトの名無しさん2016/04/05(火) 11:14:08.50ID:ppnKHRiK
>>625
目標は何秒いない?
0627デフォルトの名無しさん2016/04/05(火) 13:11:46.88ID:+MT3Wf2o
http://www.mermaid-tavern.com/
0628デフォルトの名無しさん2016/04/05(火) 14:51:17.65ID:v/NArIjt
>>625
多分、Copy&Pasteの方が早い
が、そこに速度求める必要性があるのかどうか疑問
0629デフォルトの名無しさん2016/04/05(火) 22:40:54.54ID:Tn2/jJXp
>>625
データってなに?セルの値?書式?
0630デフォルトの名無しさん2016/04/05(火) 23:30:08.28ID:Gc5FnagC
http://officetanaka.net/excel/vba/speed/index.htm
ここが参考になりませんか?
0631デフォルトの名無しさん2016/04/05(火) 23:31:45.85ID:7wH2w4I2
VBA初心者です。
岡三RSSの5分足を1分毎にデータ更新するマクロ作りたいのですが、
どのように作業を進めていけばいいのかわかりません。
どなたかヒントをください。
0632デフォルトの名無しさん2016/04/05(火) 23:53:56.98ID:LzPMv2av
そういうのって岡三証券に聞いたほうが早いんじゃね?
0633デフォルトの名無しさん2016/04/05(火) 23:53:58.44ID:05m3kBZf
>>631
5分足なのに1分毎に更新?

よくわからないけど、最大値と最小値を内部に持つクラスを作るのはどうかね。
値を受け取って必要なときに最大値と最小値を更新していくんだ。
0634デフォルトの名無しさん2016/04/06(水) 05:37:45.06ID:0S+muf67
VBAを始めるにあたっておすすめの本を教えていただきたいです
近所の本屋に行くと、プログラミングを知らない人向けに必要な機能だけを教えていくみたいな本ばかりでした
プログラミングの入門書ではなく、言語の入門書が欲しいです
0635デフォルトの名無しさん2016/04/06(水) 05:48:35.63ID:yuyIYi3V
>>634
「はじめて読む486」辺りかな
0636デフォルトの名無しさん2016/04/06(水) 05:51:12.05ID:0S+muf67
そんな魔術書はとても読めません
0637デフォルトの名無しさん2016/04/06(水) 08:11:22.76ID:9iDpy2/R
>>631
5分足を5分毎にデータ更新するマクロは完成してるの?
0638デフォルトの名無しさん2016/04/06(水) 08:14:16.30ID:Yk0GmKq8
>>634
今は無料で読めるWEBサイトがいっぱいあるけど、それでも高くて大きくて重たくて不完全な本がいいの?

入り口
http://tonari-it.com/vba-start-10minutes/

基本
http://excelvba.pc-users.net/fol2/2_2.html

言語仕様
https://msdn.microsoft.com/ja-jp/library/office/gg264383(v=office.15).aspx
0639デフォルトの名無しさん2016/04/06(水) 08:17:51.90ID:y1UF9DzI
>>631
っていうかさ、初心者がRSSをどうこうとか 何言ってんの?
更には、どのように ってお前何も考えてねぇじゃん。

>>1見てから出なおして来い。失せろ小僧。
0640デフォルトの名無しさん2016/04/06(水) 08:24:27.39ID:hHiMvEnV
罵倒スレか
0641デフォルトの名無しさん2016/04/06(水) 08:53:14.83ID:MvwJJXzQ
まぁここはVBAのこと以外
一切書いてはいけないスレだから
仕方がない
0642デフォルトの名無しさん2016/04/06(水) 09:47:02.16ID:0S+muf67
>>638
あなたは新しい言語に取り掛かる時に本を買わないのですか?驚きです
0643デフォルトの名無しさん2016/04/06(水) 09:54:31.74ID:y1UF9DzI
>>642
買わない人は多いよ。

俺も買わない派。公式サイトのリファレンス(英語)を1つずつ漁っていく。
0644デフォルトの名無しさん2016/04/06(水) 10:18:21.14ID:hHiMvEnV
>>1の★3と★4の条件はすごい
0645デフォルトの名無しさん2016/04/06(水) 11:04:01.89ID:9iDpy2/R
>>631
岡三RSSは知らないが楽天RSSなら、
出来高セルのあるシートモジュールのPrivate Sub Worksheet_Calculate()に
5分間で初回の出来高変化時に、そのときの現在値を始値にセット
初回でないなら、そのときの現在値が高値を超えているか?安値を下回っているか?
・・・

とか記述すればいいんじゃない?かなり省いてるけど。
俺も初心者だったけど、ネットで調べつつでそれほど時間かからずに作れたよ。
あと岡三RSSって5分足とかの4本値を直接取得できるんじゃなかったっけ?
取得できるならもっと簡単だと思う。
0646デフォルトの名無しさん2016/04/06(水) 15:23:35.60ID:swx+pkIq
>>645
直接取得できます。
ただ取得した時の時間を自動更新しながら取得したいのです。
1分毎か5分毎に。
調べてみましたが、Application.OnTimeとか使えばいいのですか?
0647デフォルトの名無しさん2016/04/06(水) 15:52:30.69ID:9iDpy2/R
>>646
OnTimerでいいと思います
0648デフォルトの名無しさん2016/04/06(水) 16:06:45.63ID:swx+pkIq
>>647
セルA2からA5に始値、高値、安値、終値の更新はこんな感じでよろしいでしょうか?

Sub SetAlarm()
Application.OnTime Now + TimeValue("00:05:00"), Range("A2:A5")
End Sub
0649デフォルトの名無しさん2016/04/06(水) 16:08:04.24ID:9iDpy2/R
>>647 訂正
OnTime でいいと思います。
0650デフォルトの名無しさん2016/04/06(水) 16:25:50.90ID:9iDpy2/R
>>648
さすがにそれは動かないと思う。
ググってみてください。
http://officetanaka.net/excel/vba/tips/tips114.htm
など
0651デフォルトの名無しさん2016/04/06(水) 16:41:11.44ID:swx+pkIq
>>650
ありがとうございます。
ググってみてそれなりにやってみたけど、
動かない。。。
もうちょっと訂正繰り返してがんばってみます。
0652デフォルトの名無しさん2016/04/06(水) 17:55:34.35ID:swx+pkIq
出ない
心が折れそう
0653デフォルトの名無しさん2016/04/06(水) 19:07:55.61ID:HA12DnSE
Sub SetAlarm()
If Not kabuupdate() then Exit sub
Application.OnTime Now + TimeValue("00:05:00"), "SetAlarm"
End Sub

Function kabuupdate()
kabuupdate=true
データを更新するコマンド
If 終了する条件 then kabuupdate=false
End Function
0654デフォルトの名無しさん2016/04/07(木) 17:37:51.70ID:6B91uImH
win7、IE11、Excel2003です

起動済のIEを使って、別のサイトを開くことをやってます。

最初はうまくいくんですが、途中からエラーが出て進めなくなることがあります。
objIE.Navigate "url" のところで 「navigate メソッドは失敗しました iwebbrowser2」

ログイン画面とかは一発でエラーが出るんですが、原因や対策わかりますか?
ググッてもよくわからない・・
0655デフォルトの名無しさん2016/04/07(木) 20:54:46.92ID:UtMN6w2E
>>654
最初とか途中とかなんの話だ?
第三者に伝わるように質問できない?
それとも独り言?
0656デフォルトの名無しさん2016/04/07(木) 20:58:18.52ID:3kkZOGoe
新しいブックを開くとイミディエイト上のオブジェクトが消滅してしまうのは仕様なんでしょうか?
地味に困っています。
0657デフォルトの名無しさん2016/04/07(木) 21:52:52.25ID:6B91uImH
>>655
失礼しました。
当方初心者なんですが、詳しい方にとってはあああれかとすぐわかるかと思ってw

IE開く→エクセル開きマクロ実行→起動済みのIEで目的のサイト開く(マクロ終了)→手作業→
マクロ発動し再度サイトを開く→手作業→延々と繰り返し

この過程で目的のサイトを開く時にかなりの頻度で前述のエラーが出ます。
0658デフォルトの名無しさん2016/04/07(木) 22:00:56.97ID:9XMjwe9U
>>656
自分の解釈を加えずに現象を伝えた方が良い事もある

医者に症状を話すときとか
自分で勝手に風邪ですとかじゃ無くて
咳と鼻水がでて熱が38度あるとかの方法
0659デフォルトの名無しさん2016/04/07(木) 22:02:18.31ID:9XMjwe9U
>>657
IEのオブジェクトが作業中に変わったりしてない?
チェックするコードを入れてみたら?
0660デフォルトの名無しさん2016/04/07(木) 22:03:01.38ID:6B91uImH
仕方がないので次のようにしてます。(エラーは出ない)

エクセル開く→
@ マクロ実行→IEを開いて目的のサイト開く(マクロ終了)→手作業→IE閉じる
A @を繰り返す
B〜 同じ
0661デフォルトの名無しさん2016/04/07(木) 22:09:01.15ID:9XMjwe9U
>>660
既に開いているIEを参照してないんじゃね?
他にもウインドウを開いたりしてたら他のウインドウを参照してるかもしれないから確認したら良い
0662デフォルトの名無しさん2016/04/07(木) 22:18:18.14ID:3kkZOGoe
>>658

1.イミディエイト上になにかオブジェクトを作る。(型はなんでも)
ここでは単純に整数とする。
a = 3

2.そのオブジェクトを確認する
?typename(a)
Integer

3.新しいブックを開く

4.さっきのオブジェクトを確認する→消滅している
?typename(a)
Empty

という意味です
0663デフォルトの名無しさん2016/04/07(木) 22:42:16.79ID:9XMjwe9U
>>662
ブック毎にイミディエイトウインドウがあるのでは無くて
エディタに一つだから色んなタイミングでクリアされるんじゃないかな
中の人じゃないから確実なことは言えないけど恐らく仕様じゃない?
0664デフォルトの名無しさん2016/04/07(木) 22:48:28.36ID:3kkZOGoe
>>663
やはり仕様ですかね。
順調に作業している途中でうっかりブックを開いてしまって全部パー、というのをやっちゃうんですよね。
困った。
0665デフォルトの名無しさん2016/04/07(木) 23:13:10.92ID:bJ8hF4FM
>>664
イミディエイトで何か実用的な作業してるんですか?
良い使い方だったら真似したいので差し支えはないでしょうから教えて下さい。
0666デフォルトの名無しさん2016/04/07(木) 23:59:01.96ID:3kkZOGoe
>>665
定型作業ではないです。
ワークシートのデータとDBから取ってきたデータ(これは配列)を見比べて
ああでもないこうでもないと分析する作業とか。
0667デフォルトの名無しさん2016/04/08(金) 00:02:37.36ID:k7lREFlm
>>660
説明する能力がないならせめてソースを貼ってくれ
いちいちめんどくさい
0668デフォルトの名無しさん2016/04/08(金) 07:43:27.06ID:R25zKOdT
>>660
1.マクロ実行→IEを開いて目的のサイト開く(マクロ終了)→手作業→IE閉じる

いつも、実行中のすべてのIEを終了してから、
新規にIEを起動すればいい

@ こういう文字は、Windowsだけで使える環境依存文字だから、使わない方がいい
0669デフォルトの名無しさん2016/04/08(金) 08:14:53.74ID:3IMa4NeZ
ここVBAスレだし、VBAが使える環境なら@も使えるんだからええやろ
0670デフォルトの名無しさん2016/04/08(金) 10:09:57.63ID:DceHVCs4
丸付き数字の1,2,3なんかはUnicodeで定義されてるはずだが

まあここはシフトJISだった気がするし、VBEはちゃんとUnicode扱えなかったりするけど
0671デフォルトの名無しさん2016/04/08(金) 10:46:37.68ID:/MznQlQG
>>668
それ言うなら "→" も環境依存だな
0672デフォルトの名無しさん2016/04/08(金) 11:52:47.59ID:PtRIyf6m
>>670
コピペすると?記号になっちゃうのも地味に不便だよなあ
0673デフォルトの名無しさん2016/04/08(金) 12:45:37.18ID:ZegRwvsH
2000行までデータが自動取得しています。
1行から新しいデータを取得して、
古いデータは下に行く流れです。
2001行になったら2001行目のデータすべて消去したいです。
よろしくお願いいたします。
0674デフォルトの名無しさん2016/04/08(金) 13:11:25.59ID:zXNfLtBa
>>673
常に2001行はデータ消すようすれば良い
0675デフォルトの名無しさん2016/04/08(金) 13:38:43.20ID:TR3w9Zsd
>>673
消せばいいじゃん。
0676デフォルトの名無しさん2016/04/08(金) 13:40:22.53ID:rSvxtnsq
いちいちの作業じゃなくて自動で消したいのです。
0677デフォルトの名無しさん2016/04/08(金) 13:56:07.12ID:x4BnY1md
自動取得してる処理の中に 2001行のデータ消すコードを入れれば いいだけだろ
0678デフォルトの名無しさん2016/04/08(金) 13:57:16.57ID:W7xClskh
>>676
意味わからん。
vbaでやれば自動だろ。
0679デフォルトの名無しさん2016/04/08(金) 14:08:36.83ID:Y/PwUvtg
>>676
2000行まで上書きすれば良いんじゃね
0680デフォルトの名無しさん2016/04/08(金) 14:12:30.36ID:TR3w9Zsd
>>676
だから、プログラムの最後に2000行目以降2000レコード文消すコードいれりゃいいだろ。
マクロですら出来ることだぞ。
0681デフォルトの名無しさん2016/04/08(金) 14:17:55.04ID:zXNfLtBa
>>677
だよねー
0682デフォルトの名無しさん2016/04/08(金) 14:48:15.29ID:/MznQlQG
というか、こういうスクロールってどうやるんだろ。
まさか全行をコピー、1行下にペースト、1行目に新しいデータを記入するしかない?
0683デフォルトの名無しさん2016/04/08(金) 14:56:00.49ID:x4BnY1md
>>682
行挿入すれば自動的に下がるだろ
0684デフォルトの名無しさん2016/04/08(金) 15:06:00.89ID:/MznQlQG
ということで

Range("2:2000").Value = Range("1:1999").Value

これでOK
0685デフォルトの名無しさん2016/04/08(金) 15:28:51.28ID:vR3n62A2
rows(1).delete
0686デフォルトの名無しさん2016/04/08(金) 15:36:19.16ID:9oewkoZU
俺も>>682と同じ疑問もった。
行挿入って遅いんだよね。
0687デフォルトの名無しさん2016/04/09(土) 15:55:00.81ID:yBM+Q3VA
カーソルの現在地のセル番地を取得する方法はありますか?
今カーソルのある位置は? → cells(3310.77) 3310 77 ←この数値をしりたいです。

お願いします。
0688デフォルトの名無しさん2016/04/09(土) 16:05:29.28ID:dqL4NvwQ
これ?
ActiveCell.Row と ActiveCell.Column
0689デフォルトの名無しさん2016/04/09(土) 16:52:52.65ID:XGWfr4Pw
>>687
ググれカス
そっちの方が早いぞ
0690デフォルトの名無しさん2016/04/09(土) 19:11:29.71ID:GDJhJcuX
会社で勤務中は一日中ずっとExcelは起動しているとして
VBAでオブジェクトをいっぱい生成しても
Javaでいうガベージコレクションは働いてるんですか?

もしそうじゃないなら勤務中に頻繁にVBAのツール使ってるんで
メモリを無駄に消費しすぎてPCの挙動が遅くなったりするのが心配で。
0691デフォルトの名無しさん2016/04/09(土) 19:30:45.63ID:Bs+72Bdc
>>690
心配性だなあ
今不都合がないならそれでいいじゃん
0692デフォルトの名無しさん2016/04/09(土) 19:37:18.64ID:GDJhJcuX
>>691
チーム内外の同僚たちもたくさんこのツールを使ってるしこれからも使うから心配なのだ。
自分は不具合なくても他のユーザーが不具合あっても文句言わないだけというのも気の毒だしプロとしてもプライドが許さない。
わたしはそういう意識高い系のプログラマです。
0693デフォルトの名無しさん2016/04/09(土) 19:53:00.63ID:omWqeBLW
自分で使って挙動がおかしいからそんな質問してんだろ
どうして意味のないウソつくの?
0694デフォルトの名無しさん2016/04/09(土) 20:51:46.13ID:oFwBMxXq
>>687
Option Explicit

Sub アクティブセルの位置を調べる()
Dim 現在位置列
Dim 現在位置行
Dim アドレス
Dim 値
'ワークシートをアクティブにする ※1
現在位置列 = ActiveCell.Column 'アクティブセルの列番号
現在位置行 = ActiveCell.Row 'アクティブセルの行番号
アドレス = ActiveCell.Address 'アクティブセルのアドレス ※2
値 = ActiveCell.Value 'アクティブセルの値
MsgBox アドレス & 値
MsgBox 現在位置列 & 現在位置行
End Sub
0695デフォルトの名無しさん2016/04/09(土) 21:07:50.44ID:NkRGPRMb
ホラッチョの巣窟ですね わかります。
0696デフォルトの名無しさん2016/04/09(土) 21:51:44.53ID:NkRGPRMb
文字列を後ろから4文字削除したい場合はどうすればいいのでしょうか?
(例)
 10.xls → 10 
0697デフォルトの名無しさん2016/04/09(土) 21:53:43.85ID:omWqeBLW
Back4Fucking("10.xls")
0698デフォルトの名無しさん2016/04/09(土) 22:08:20.41ID:dqL4NvwQ
>>696
ファイル名の拡張子を消したいなら
   FSO(File System Object)の  GetBaseName()
  又は
   Left(ファイル名, InStrRev(ファイル名, ".") - 1)

単純に 後ろ4文字削除したいだけなら
 Left(文字列, Len(文字列) - 4)
0699デフォルトの名無しさん2016/04/09(土) 22:31:22.73ID:omWqeBLW
>>698
それは前から数えて4文字短かい新しい文字列を作ってるだけだろ
07006962016/04/09(土) 22:32:48.49ID:TTk8z+wW
>>698
 Left(文字列, Len(文字列) - 4)
これでうまくいきました!ありがとうございました。
0701デフォルトの名無しさん2016/04/09(土) 22:38:30.19ID:dqL4NvwQ
>>699
ご高説ありがと ではどうしたらいいの?
"ググレかす"はなして
0702デフォルトの名無しさん2016/04/09(土) 22:40:51.92ID:dqL4NvwQ
訂正
×"ググレかす"はなして
○"ググレかす"はなしで
0703デフォルトの名無しさん2016/04/09(土) 22:44:12.54ID:omWqeBLW
>>701
ク   グ   れ   か   す
07046962016/04/09(土) 22:56:06.66ID:TesuAEt0
ググルがまだまだ万能では無いのでここで聴いてるんだよ 
よって ググレかすっていってる奴がカスなんだよ
わからないのかな?そこの「ググレかす」君!
0705デフォルトの名無しさん2016/04/09(土) 23:21:33.47ID:QOjje/I2
万能じゃないにしろ、ある程度は絞り込みは出来るだろ。どんなキーワードで検索したんだよ
0706デフォルトの名無しさん2016/04/10(日) 03:52:45.83ID:ExCsBl9H
>>654
IEの保護モードの影響で整合性レベルが切り替わる時
CreateObject("InternetExplorer.Application")
で接続したオブジェクトが無効になる。
対策方法はいくつかあるけどVBAだけで対策するなら
GetObject("new:{D5E8041D-920F-45E9-B8FB-B1DEB82C6E5E}")
で接続すればよい。
0707デフォルトの名無しさん2016/04/10(日) 07:45:39.42ID:Lt2F89As
オートフィルターについて教えてください

下のコードをworksheets(1)をactiveの状態で実行したいのですが5行目で1004エラーがでます。
worksheets(2)をactiveの状態で実行するとうまくいきますが、worksheets(1)をactiveの状態で実行したいです。

5行目の範囲指定をRange("C1:C7")かColumns(3)にするとworksheets(1) activeでもうまくいきますが、
実際のデータは数千行の可変なのでRaneg()では最終行が求められませんし、Columns()では重くなるので、cellsで範囲指定したいです。

よろしくお願いします。

Sub test()
With Worksheets(2)
.AutoFilterMode = False
.Range("A1").AutoFilter Field:=2, Criteria1:="a"
.Range(Cells(1, 3), Cells(7, 3)).Copy Worksheets(1).Cells(1, 1)
End With
End Sub
0708デフォルトの名無しさん2016/04/10(日) 07:52:07.40ID:5ptKitBG
Cells→.Cells
0709デフォルトの名無しさん2016/04/10(日) 07:52:41.10ID:Fj4/7GGt
>>690

またザバーを装ったC++erか。いい加減にしとけ。

VBAにはガベージコレクションの概念はないよ。
普通はスコープが切れればそこで参照は断ち切れるから問題ないけど、
COMでやってたりするときちんとNoting設定してあげなければいけないのはjavaやC++でも同じだろう。

ま、心配なら使い終わったObjectはNotingしとけばいい。

あとこっちはVB6で出来ることは全てスレ違いらしいからな。他所でやるのが筋だろう。
0710デフォルトの名無しさん2016/04/10(日) 07:55:32.83ID:Lt2F89As
>>708
ありがとうございます。うまくいきました。
0711デフォルトの名無しさん2016/04/10(日) 10:19:14.00ID:KQiea6Cc
>>692
意識高い系 


つまり、ヴァカって事ですね。ヴァカは相手にしたくないんで、消えろ小僧
0712tasukete2016/04/10(日) 10:33:08.30ID:1I5jwrs3
正規表現に関する質問です。

■概要
「そうですねabcの次はdefですね笑」

上記文章のdefにマッチさせる正規表現文字列をご教授下さい。

■ロジック
「***笑」の「***」の中に存在する「最後の」半角英数文字を取り出したい。

■現在の正規表現文字列
0713デフォルトの名無しさん2016/04/10(日) 11:14:44.53ID:u3Sxyukh
>>712
>>1 読んでね
0714デフォルトの名無しさん2016/04/10(日) 11:23:33.43ID:1I5jwrs3
>>712
以下で解決しました。ご回答ありがとうございます。
"([0-9a-zA-Z!-~]+)([^0-9a-zA-Z!-~]*)(笑)"
0715デフォルトの名無しさん2016/04/10(日) 15:06:06.71ID:r0zhudqC
検索文字列が見つかりません。


検索文字列が見つかりませんでした。エラーの原因と対処方法を次に示します。

指定された検索適用範囲の開始点から終了点までの間に、一致する文字列がありません。
検索を続ける場合は、検索の適用範囲を広げてください。

パターン マッチング式で左かっこが指定されていません。
左かっこを指定します。

詳細については、目的の項目を選択して F1 キー (Windows) または Help キー (Macintosh) を押してください。
0716デフォルトの名無しさん2016/04/10(日) 17:42:09.90ID:h6VSGqHp
半角じゃなくて半角英数?
どっちにしても違ってる気がするけど
0717デフォルトの名無しさん2016/04/10(日) 19:01:22.63ID:zU852X9x
VBEを開き、

1 プロパティウィンドウを表示
2 イミディエイトウィンドウを表示
3 VBEウィンドウ最大化

した状態でVBEを閉じ、次にVBEを起動しても1,2,3の状態が保持されません。
VBEを開くたびに1,2,3をするのが面倒なのですが解決策がありましたら教えて下さい。
07186542016/04/10(日) 19:04:53.65ID:Mh1op7Td
>>706
ありがとうございます!
まだ解決できてませんが、ググっていろいろ試してみます。
0719デフォルトの名無しさん2016/04/10(日) 19:32:19.02ID:Y5yf6QHK
>>717
1,2,3を自動化するツールを常駐させておく
0720デフォルトの名無しさん2016/04/10(日) 19:38:18.50ID:zU852X9x
>>719
他に方法がなければそれも検討しますが・・・
他にありませんか?
0721デフォルトの名無しさん2016/04/10(日) 19:42:11.74ID:jDmPqXB1
vbaでは引数に括弧をつけないのが普通みたいな記述をみたのですが本当ですか?
そもそも引数の括弧の必要性が一貫してないことに意味はあるのでしょうか
0722デフォルトの名無しさん2016/04/10(日) 19:49:43.74ID:Fj4/7GGt
>>721
厳密に言うと挙動が変わっちゃう場合があるからねぇ
括弧付ける時は前にCall付けとかないとねぇ
0723デフォルトの名無しさん2016/04/10(日) 20:53:02.90ID:TaPFtU7E
>>720
VBEを閉じない
0724デフォルトの名無しさん2016/04/10(日) 21:05:55.36ID:fppF2dqS
ロータス123
0725デフォルトの名無しさん2016/04/10(日) 21:30:42.88ID:h6VSGqHp
ノンノン

Lotus 1-2-3
0726デフォルトの名無しさん2016/04/11(月) 01:07:36.81ID:mNSepyo/
>>717
マイクロソフトを買収して最優先ですぐに直すように開発チームに命令する。
0727デフォルトの名無しさん2016/04/11(月) 01:16:39.75ID:FRetIr0G
明日までになおっていなかったらおまえら全員クビだ!!!
0728デフォルトの名無しさん2016/04/11(月) 06:55:56.76ID:MF2TZXcE
With ActiveCell

.Value = .Value & 3

End With


空セルでこれを実行すると、1回目→3が入る・・・・16回目→なぜか0が入る。17回目→3.33333333333333E+153という値になり
期待した結果が得られません。(期待する結果としては、3333333333333333333333333と延々と続いてほしい)

実行すると、「現在のセルの値を拾って、一文字(数字)を付け足す」というのを延々と繰り返してほしいのですが、
簡単な書き方を教えてください。

よろしくお願いします。

Excel2010です。
0729デフォルトの名無しさん2016/04/11(月) 07:07:01.65ID:siKElAn4
>>728
まずそこのセルの書式はどうなってるの?
文字列でないと当然制限は受けると思うけど

後は & 3 ってなってるところを & "3"として繰り返せば要件満たせるよね
0730デフォルトの名無しさん2016/04/11(月) 07:29:25.01ID:c3d7+hIF
>>728
textとダブルクォート使えばいいんじゃない
0731デフォルトの名無しさん2016/04/11(月) 08:13:16.14ID:Tjd5GnSG
>>728
.Text = .Text & "3"
0732デフォルトの名無しさん2016/04/11(月) 08:31:44.40ID:gJM7Zl86
たくさんExcelファイルがあり
それぞれに共通のプロシージャがあるとき
それをうまく単一の場所に保存して修正の必要が発生したときに修正は一ヶ所だけにするにはどうすればいいですか?
0733デフォルトの名無しさん2016/04/11(月) 08:44:59.34ID:8qeonQG2
>>732
特定のブックのマクロをどのブックからも利用可能にするには?
http://www.asahi-net.or.jp/~zn3y-ngi/YNxv9114.html
0734デフォルトの名無しさん2016/04/11(月) 08:47:40.18ID:Tjd5GnSG
>>732
Application.Run

注意点はここ
http://blog.sen-i.jp/vba/excel-vba-common-module-file.html
0735デフォルトの名無しさん2016/04/11(月) 10:44:34.46ID:liIxp6L/
basファイルを直接参照設定できればなあ。
今は手動で最新のをインポートしなきゃいけない。
0736デフォルトの名無しさん2016/04/11(月) 15:04:40.97ID:MF2TZXcE
>>729
うっかり忘れてました・・・。

>>730
>>731
.Text = .Text & "3"
にすると、オブジェクト指定しろって文句言われてダメでしたので
文字にすることで逃げました・・・

ありがとうございましすた。
0737デフォルトの名無しさん2016/04/11(月) 15:34:57.92ID:Tjd5GnSG
Textプロパティって読み出し専用だっけ?

.Value = .Text & "3"

かな?
0738デフォルトの名無しさん2016/04/11(月) 19:05:18.20ID:VX+C6Bv4
クラスのメンバ変数にアクセスする際、プロパティープロシージャを使うようにらなってるみたいですが、
普通のメソッドを使っても同様の機能を持たせることができてるみたいです
わざわざプロパティープロシージャを使う理由は何でしょうか
0739デフォルトの名無しさん2016/04/11(月) 20:05:19.94ID:qE1DLczH
>>738
ReadOnly のプロパティなら Functionでも代用可能だね
プロパティに値を入れる時どうする?

Public変数使う? それなら
>>普通のメソッドを使っても同様の機能を持たせることができてるみたいです
  ↑これすら不要になるね

さてどうしましょうか?
0740デフォルトの名無しさん2016/04/11(月) 20:53:44.76ID:8qeonQG2
またオブジェクト指向がどーたらこーたらか
0741デフォルトの名無しさん2016/04/11(月) 21:24:10.68ID:liIxp6L/
>>738
いやべつに記述が簡単になるだけっすよ先輩。
0742デフォルトの名無しさん2016/04/11(月) 22:40:03.89ID:+pegrb/D
>738
実質プロパティとメソッドで出来る事に大差はないけど
使い分けについて、.NETでの解説だけど一度読んどくと良い
プロパティとメソッドの選択
https://msdn.microsoft.com/ja-jp/library/ms229054(v=vs.80).aspx

VBAかVBでの記事も見た気がするんだがみつからん
0743デフォルトの名無しさん2016/04/11(月) 22:51:27.02ID:yNx//VK9
>>742
「メンバーが型の論理属性を表す場合は、プロパティを使用することを検討してください。」
→これはちょっと難しいね。翻訳の問題だろうか?誰か教えて!


「操作が Object.ToString method などの変換操作の場合。」
なんで?いいじゃん?
0744デフォルトの名無しさん2016/04/12(火) 00:32:03.58ID:sXpv9NYn
>>739
クラス上でPublicな変数を設定することは結合度の問題があるから避けた方が良いかな。

ましてやVBAの場合、多態性を持たせるのに継承が使えないから
インターフェースを使って処理の移譲(委託)を行うことがある。

この場合、シグネチャをインターフェース上に記述しないと使用出来るプロパティやメソッドから除外されてしまう。

標準モジュール上からならまぁいいかも知れないけど、
一応記述に一貫性を持たせると言う意味合いでプロパティやメソッドにしておいた方が良いかもしれない。

けどこれは理想論であって、実際に標準モジュール上で
例えば構造体(ユーザー定義型)とかをプロパティで
引っ張り出せるかと言うと無理だったり、
難点も色々あるのも確か。
0745デフォルトの名無しさん2016/04/12(火) 01:16:26.34ID:lRmEmyeQ
おまえら全員クビだ!!!
0746デフォルトの名無しさん2016/04/12(火) 02:02:23.64ID:6wI8o2z5
はい
0747デフォルトの名無しさん2016/04/12(火) 02:59:53.21ID:k6A/HJ44
>>743
>一般的に、メソッドは操作を表し、プロパティはデータを表します
って書いてある通り
オブジェクトの属性はプロパティで定義する
オブジェクトそのものの操作はメソッドで定義する
って言うのが基本

一つ目はつまり
オブジェクトの属性はプロパティで定義する
って言ってるだけ

二つ目は、型変換はオブジェクトそのものの操作で属性の変更じゃないからメソッド使えってこと
0748デフォルトの名無しさん2016/04/12(火) 08:37:48.05ID:btagnXsu
だから〜、、、、、オブジェクト指向の話は他所でやれ、クソボケ
0749デフォルトの名無しさん2016/04/12(火) 08:39:09.79ID:WtnI9Bnt
>>748
そもそもVBAでする話じゃないわなwww
0750デフォルトの名無しさん2016/04/12(火) 08:53:38.95ID:qfYIdiLt
VBAでクラスが使えてしまうんだから仕方がない
0751デフォルトの名無しさん2016/04/12(火) 09:00:24.79ID:BmESo+NV
コンストラクタに引数を渡せない糞言語の話を他所でやれって?
冗談じゃない
0752デフォルトの名無しさん2016/04/12(火) 09:12:16.27ID:1wVIN9qn
オブジェクト指向や他言語との比較はスレ違いなのでやめるべき。
というよりそもそもVBAerはそういう話題を嫌う。理由は3つくらいあるんじゃないか。
0753デフォルトの名無しさん2016/04/12(火) 10:56:46.57ID:tcSQ2kyU
丸いShapeをくっつけて、それに"アホ"というテキストを書き込むとき

Activesheet.Shapes.Add(何書くか細かくは忘れた).Select
としたあとに
Selection.ShapeRange.Text="アホ"
としなきゃならないみたいです。

でも単純にActivesheet.Shapes.Add(何書くか細かくは忘れた).ShapeRange.Text="アホ"
とできない理由はなぜですか?
エラーが出る。

このへんのしくみがよくわからない。
0754デフォルトの名無しさん2016/04/12(火) 11:01:32.95ID:tcSQ2kyU
正しくは

ActiveSheet.Shapes.AddShape(msoShapeOval, 100, 100, 100, 100).Select
Selection.Characters.Text = "うんこ"

だった。

これを
ActiveSheet.Shapes.AddShape(msoShapeOval, 100, 100, 100, 100).Characters.Text = "うんこ"
とできないのはなぜ?
0755デフォルトの名無しさん2016/04/12(火) 11:03:19.06ID:tcSQ2kyU
あと
ShapeRangeってどういうときに使うんでしょう?
このへんのこと詳しく書いてる本ってないかな?
0756デフォルトの名無しさん2016/04/12(火) 11:05:46.41ID:tcSQ2kyU
つまり既存のShapeがあって
そこに書かれている文字列を取得したり書き込みしたりするのにSelectを使わないでやる方法はないのですか?
0757デフォルトの名無しさん2016/04/12(火) 11:08:01.22ID:BmESo+NV
addshapeするまでそのオブジェクト自体が存在しないからじゃないの(適当)
0758デフォルトの名無しさん2016/04/12(火) 11:14:46.74ID:DUyuWo3I
それだと実体がないのにSelectできる理由がもっとわからない
0759デフォルトの名無しさん2016/04/12(火) 12:54:34.46ID:Zq/wNYgf
>>754
エラーになるのはShapeにはCharactersはないから
分けると動くのは
AddShapeが返してるオブジェクトと、Selectionが返してるオブジェクトで種類が違う
前者はShape、後者はOvalとかいう隠しタイプになってるな

一発でやる方法はしらん
0760デフォルトの名無しさん2016/04/12(火) 14:00:20.14ID:Juix7VHF
>>759
ありがとうございます。
さすがくわしいかたのようですね。
そういうことはどうやってお調べしましたか?
あとSelectを使わずにこの種のShapeの文字列を自由自在にコードから操る方法ってあるでしょうか?
0761デフォルトの名無しさん2016/04/12(火) 14:22:15.40ID:4cgDrrMQ
ActiveSheet.Shapes.AddShape(msoShapeOval, 100, 100, 100, 100).TextFrame.Characters.Text = "うんこ"
0762デフォルトの名無しさん2016/04/12(火) 14:52:47.07ID:Juix7VHF
>>761
すばらしい!
ありがとうございます。
しかしそのコードはどうやって発見しました?
それを言っていただけないと単にすごいことができるぞという自慢だけで
後輩は育たないと思うんですよ。
0763デフォルトの名無しさん2016/04/12(火) 14:56:33.44ID:csTZz+jG
Shape メンバー (Excel)
https://msdn.microsoft.com/ja-jp/library/office/ff193908.aspx
0764デフォルトの名無しさん2016/04/12(火) 14:57:40.62ID:Juix7VHF
と言いながら自分も発見しました。

ActiveSheet.Shapes.AddShape(msoShapeOval, 100, 100, 100, 100).TextFrame2.TextRange.Text = "しっこ"

でも同様な効果が得られるみたい。
0765デフォルトの名無しさん2016/04/12(火) 14:59:58.93ID:Juix7VHF
さて、ここで問題です。

Sub test()
Dim s As Shape
Set s = ActiveSheet.Shapes.AddShape(msoShapeOval, 100, 100, 100, 100)
s.TextFrame.Characters.Text = "うんこ"
s.TextFrame2.TextRange.Text = "しっこ"
End Sub

のサンプルコードをF8のステップイン実行で実行させてやるとどうなるでしょうか?
0766デフォルトの名無しさん2016/04/12(火) 15:04:55.97ID:Juix7VHF
ちなみにこれも大丈夫だぞ

ActiveSheet.Shapes.AddShape(msoShapeOval, 100, 100, 100, 100).TextEffect.Text = "まんこ"
0767デフォルトの名無しさん2016/04/12(火) 15:07:06.27ID:lcRE+/VX
変なのが住み着いちゃったな。
0768デフォルトの名無しさん2016/04/12(火) 15:50:02.95ID:v+pMiFFp
ちゃんとpart41を立てなかったからかな…
0769デフォルトの名無しさん2016/04/12(火) 16:10:55.28ID:STTwnrpw
>>1が「Application以下のオブジェクトをVB言語で操作するものを指します」なんて制約を課すからだ。
0770デフォルトの名無しさん2016/04/12(火) 16:15:50.58ID:fzvKu7Wb
>>769
だ・か・ら その制約のないスレがあるだろ

VBAなんでも質問スレ Part2
http://echo.2ch.net/test/read.cgi/tech/1432173164/
0771デフォルトの名無しさん2016/04/12(火) 21:54:25.08ID:fGIKSfok
>>764 >>766
2003ではエラーになった
0772デフォルトの名無しさん2016/04/12(火) 22:25:34.76ID:nCbKxQn+
そもそもマイクロソフトがVBAをオブジェクト指向に片足突っ込んだ構造化言語にしていたり、
VB.NetやC#を関数型言語に片足突っ込んだObject指向言語にしてるのが何ともなぁ。

クラスも多態性を持たせるために使うどころか単純に生成して使うことすら拒絶反応起こす人もいるし、
VBAではクラス使えば確かに便利な局面は多々あるけど、
別に使わなければ使わないでそこまで困るもんでもなし。

ただVBA上で使えるものを毛嫌いだけで真っ向否定するのもちょっとなぁ。
0773デフォルトの名無しさん2016/04/12(火) 23:55:40.34ID:bWko/EWY
そんな人、いんの?
0774デフォルトの名無しさん2016/04/13(水) 00:16:04.53ID:dn9c0fAI
VBAすら関数型言語に突っ込んでるしな
0775デフォルトの名無しさん2016/04/13(水) 08:08:12.84ID:0jY11d3Z
VBAの仕様が嫌いなら使わなければよろしいんじゃないでしょうか。
0776デフォルトの名無しさん2016/04/13(水) 08:10:47.45ID:HK9IN9G5
情報セキュリティーのせいで勝手にソフトウェアインストールできないからVBAしか選択肢ねえんだよ
誰がこんな糞言語好んで使うんだ
0777デフォルトの名無しさん2016/04/13(水) 09:01:56.70ID:845RQjl0
>>776
要は開発ではないってことだろ

そんな奴がVBAが使えるアプリ以外のどんなもののインストールを望んでいるんだ?

まさかそのVBAでデカいシステム組まさせられるって訳じゃないんだろ?

糞言語と罵る前に自分の糞立場わきまえたらどうだ。
0778デフォルトの名無しさん2016/04/13(水) 09:15:25.53ID:OrR/ddjy
>>776
JavaScriptは使えるんじゃね?
ブラウザで動くし
0779デフォルトの名無しさん2016/04/13(水) 09:47:35.90ID:N3hRKpiT
>>778
VBAのようにローカル扱いたいなら、Node.jsのインスコは必須だよ。
0780デフォルトの名無しさん2016/04/13(水) 10:14:51.33ID:OrR/ddjy
>>779
自分でNode.jsと同等機能を実装したのとセキュリティ観点ではほぼ同じじゃね?
jqueryも
0781デフォルトの名無しさん2016/04/13(水) 10:26:45.62ID:N3hRKpiT
>>780
Node.js実行環境を君は作れるというのか?
0782デフォルトの名無しさん2016/04/13(水) 10:31:07.56ID:2GMFnytb
そこまでセキュリティを気にしてるのに、管理者にすら掛け合えないレベルの人間がVBAで勝手に組む事は許可されてんの?
変わった会社だな
0783デフォルトの名無しさん2016/04/13(水) 11:13:32.08ID:OrR/ddjy
>>781
cscript使えば良いんじゃね?
powershellもあるし
0784デフォルトの名無しさん2016/04/13(水) 12:27:25.79ID:TwQUWgB2
>>777
開発???
それってどんな組織内のどういうポジションのことなの?
0785デフォルトの名無しさん2016/04/13(水) 12:36:06.37ID:uOfWIXve
>>782
インストールするソフトは(容易に把握できるから)気を付けるが、VBA でのローカル開発は黙認
って会社は普通にあると思うが
0786デフォルトの名無しさん2016/04/13(水) 12:39:56.50ID:NE882Qtz
学生なのか?
0787デフォルトの名無しさん2016/04/13(水) 12:49:02.04ID:TfhFpJny
よく考えろ
彼がやらされているのは「VBAで効率化できる程度の簡単な仕事」だぞ
0788デフォルトの名無しさん2016/04/13(水) 12:56:57.54ID:2l+iut8i
プログラム言語を使うのが目的のやつは何使っても文句言うんだよ
構うなよそんなやつに
0789デフォルトの名無しさん2016/04/13(水) 12:57:51.65ID:OrR/ddjy
>>784
普通はメーカーの製品開発部門かな
ソフトウェア製品とかIT関係とか家電メーカーとかの製品として販売されるものの開発
0790デフォルトの名無しさん2016/04/13(水) 12:59:37.02ID:OrR/ddjy
>>785
ライセンスとかも気をつけると思うが
製品にオープンソースが入ったりすると面倒だし
0791デフォルトの名無しさん2016/04/13(水) 13:18:50.34ID:roiJsbfQ
今時、プログラム言語を使うのが目的でVBAを選択して文句言うとかアホとしか思えん

Excel操作以外が目的で(Excel)VBAを選択する奴はそもそも言語選択まちがってるし
来るスレも間違ってる
0792デフォルトの名無しさん2016/04/13(水) 13:21:07.69ID:TwQUWgB2
他業界の他社の赤の他人の仕事内容なんてほとんど知らないし、自分の周りの常識もローカルなものでしかない。
>>777の言う糞立場ってどんなものを想像してるんだろね?
0793デフォルトの名無しさん2016/04/13(水) 13:30:44.90ID:TwQUWgB2
開発っても外部に出すもの(の中にくみこまれる)と自分の仕事に使うツールの両義あると思うんだが。
0794デフォルトの名無しさん2016/04/13(水) 14:17:47.86ID:bdSInEaF
>>785
そういうやらなくて良いことを勝手にやってしまう傍迷惑な奴いるね
必要なら上司に掛け合うのか社会人よ?
0795デフォルトの名無しさん2016/04/13(水) 18:01:36.10ID:OSAV0HGg
バッチファイル書くのも上司に聞くのかな
0796デフォルトの名無しさん2016/04/13(水) 18:29:10.81ID:uOfWIXve
>>789-790
製品自体に VBA で作成したプログラムを組み込んで販売するって結構レアケースだと思うが...
ほとんどがちょっとした集計処理とかグラフ化とかだと思うぞ
もちろんそう言うケースでもライセンス違反はダメだけど
0797デフォルトの名無しさん2016/04/13(水) 18:30:58.60ID:uOfWIXve
>>795
会社のルールの話してるのにいきなりアホ社員の話をぶっこんでくる奴は大抵使えない奴なので相手しなくていいかと
0798デフォルトの名無しさん2016/04/13(水) 18:57:27.23ID:RI5jh8kc
>>796
世の中にはエクセルの統計アドオンを販売している会社もある
0799デフォルトの名無しさん2016/04/13(水) 19:06:32.52ID:TwQUWgB2
>>798
「レアケース」に当てはまる。
それにそういう開発の話は仕事そのものであってここで議論する人間はもっとレアだ。
0800デフォルトの名無しさん2016/04/13(水) 19:19:56.46ID:RI5jh8kc
>>789
は開発部門と言ったら普通はこういう部門だろうと言うレス

開発用途でVBAを使ってないんだろうと言うスレの流れだろ?
中にはエクセルのアドオンとかを販売している会社もあるが
0801デフォルトの名無しさん2016/04/13(水) 19:21:37.91ID:RI5jh8kc
システムのユーザインタフェースとしてエクセルを使ってそのためにVBAを使ってるとかあるかもな
システムからエクセルのxmlとかを出力したりエクセルからインポートしたり
0802デフォルトの名無しさん2016/04/13(水) 20:06:18.69ID:B4WebXUj
実際ExcelVbaの開発はあるよ。以前やってたことがある。

俺も最初糞言語だと思ったけど、後々それは結局ExcelVbaの使い所と、使い方をきちんと理解していないと理解した。
0803デフォルトの名無しさん2016/04/13(水) 20:16:42.42ID:Hxzl4YYO
あるシートにある3つの埋め込みグラフを、pdfとして出力するために以下のプログラムを組んでみたのですが

Sub pdf()
ChDrive ThisWorkbook.Path
ChDir ThisWorkbook.Path
Dim graph As Object
For Each cht In Worksheets(3).ChartObjects
cht.ExportAsFixedFormat Type:=xlTypePDF        
Next
End Sub

しかし、chartオブジェクトにExportAsFixedFormatメソッドは使用できないらしくエラーが出ました
どうすればよいのでしょうか・・・・

printoutメソッドは、
・通常使うプリンターをpdfドライバーに変更しなければならない
・Antenna house pdf driverを使用している私は API?なるものを活用しなければ、出力先を指定できない(難しい・・・)
以上の理由から、あまり使いたくありません
0804デフォルトの名無しさん2016/04/13(水) 21:08:52.91ID:CaW4EOQp
>>803
グラフだけをpdf化したいんだよね?

あまり詳しくはないけど
グラフを選択してから普通にpdf化すればいいみたいね
ActiveSheet.ChartObjects("Chart 1").Select
ActiveSheet.ExportAsFixedFormat Filename:="d:\test1.pdf", Type:=xlTypePDF
0805デフォルトの名無しさん2016/04/13(水) 21:11:34.99ID:OrR/ddjy
>>803
Exportasfixedformatメソッドはchartクラスに有るよ
typenameでchtの型を確認してみた?
08068032016/04/13(水) 21:17:55.53ID:Hxzl4YYO
>>804
グラフを選択せずに、インデックス番号で指定してpdf化したいです

>>805
chartobject と出ます
0807デフォルトの名無しさん2016/04/13(水) 21:20:14.40ID:sLqcxpeh
ChartObject オブジェクトは、Chart オブジェクトのコンテナだからこうかな

For Each cht In Worksheets(3).ChartObjects
cht.Chart.ExportAsFixedFormat Type:=xlTypePDF        
Next
08088032016/04/13(水) 21:31:51.95ID:Hxzl4YYO
>>807
おお! 今まさにそのように考えて解決を試みていました
なるほどChartobjectオブジェクトのChartプロパティでchartオブジェクトを返せばいいということですね (←これはあっていますか?

しかしこのコードだと保存されたそばから上書きされてしまいました
もし解決できなかったらまたお世話になります
ありがとうございました
08098032016/04/13(水) 22:45:43.03ID:Hxzl4YYO
連投すみません もう一つ疑問が浮かびました
例えば
dim ws as Worksheet
For each ws in Worksheets
この場合、wsはWorksheetsコレクションを構成する各要素 つまり一つのブックの中の一つ一つのシートです

それならば
Dim cht As Object
For Each cht In Worksheets(3).ChartObjects
この場合、chtはChartObjectsオブジェクトが含むオブジェクト つまりWorksheets(3)にある一つ一つのChartオブジェクト ということになると思いました

しかし>>807さんのコードで上手くいったことからそれは間違いで、chtはchartobjectオブジェクトを意味しています
となるとなぜ>>807さんのコードで、グラフ一つ一つを印刷できたのでしょうか
ChartObjectオブジェクトは、あるシートに含まれる全てのグラフを含んだコンテナです
なのでcht.chartでは、一つのchartオブジェクトを返すことができないはずだと考えてしまいました。
ChartObject(1).chart ならそれが可能なのは理解できるのですが

冗長な文章になってしまいすみません うまく表現できません
08108032016/04/13(水) 22:46:36.95ID:Hxzl4YYO
下から三行目
×ChartObject(1).chart ならそれが可能なのは理解できるのですが
○ChartObjects(1).chart ならそれが可能なのは理解できるのですが 
0811デフォルトの名無しさん2016/04/13(水) 22:52:11.29ID:OrR/ddjy
chartobjects->chartobject->chart
なんでは?
0812デフォルトの名無しさん2016/04/13(水) 22:53:27.54ID:Hxzl4YYO
>>811
すみません分かりません
kwsk教えていただけると嬉しいです
0813デフォルトの名無しさん2016/04/13(水) 22:59:26.40ID:OrR/ddjy
>>812
chartobjectsクラスと ←複数形
chartobjectクラスと ←単数系
chartクラスがある
0814デフォルトの名無しさん2016/04/13(水) 23:07:01.41ID:Hxzl4YYO
クラスですか・・・  ググってもいまいち分かりませんでした・・・
0815デフォルトの名無しさん2016/04/13(水) 23:11:12.66ID:OrR/ddjy
>>814
chartobjectsの中に
chartobjectが複数入っている

chartobject.chartでchartオブジェクトを取得できる

chartオブジェクトにexportasfixedformatメソッドがある
0816デフォルトの名無しさん2016/04/13(水) 23:22:35.06ID:Hxzl4YYO
>>815
>chartobject.chartでchartオブジェクトを取得できる
ChartObjectオブジェクトは一つのワークシートのコンテナなので、chartobjectのchartプロパティを取得したときに、一体どのグラフを返していることになるのでしょうか
08178072016/04/14(木) 00:05:12.72ID:EX/txgU+
ChartObjectは、Chartオブジェクトの入れ物(コンテナ)
ChartObjectsは、上記ChartObjectの集合体(コレクション)

>>807の For Each文は、以下のFor文の処理と同義で、
Worksheets(1)上のChartObjectsコレクションからChartObjectコンテナを一つずつ取得している

For i = 1 To Worksheets(3).ChartObjects.Count
Worksheets(3).ChartObjects(i).Chart.ExportAsFixedFormat Type:=xlTypePDF
Next
0818デフォルトの名無しさん2016/04/14(木) 00:12:51.20ID:p7xelN/l
>>817
ChartObject(コンテナ)は、Chartオブジェクト一つにつき一つなのですか?
一つのシートに一つあり、そのシートの中の複数のChartオブジェクトを包括するものだと思っていたのですが(実際にそういう説明をよく見かけるのですが)
どうなのでしょうか
0819デフォルトの名無しさん2016/04/14(木) 00:14:15.22ID:ue9e86d/
ChartObjectsオブジェクト
https://msdn.microsoft.com/ja-jp/library/office/ff822178.aspx

ChartObject オブジェクト
https://msdn.microsoft.com/ja-jp/library/office/ff838184.aspx
ChartObject オブジェクトは、ChartObjects コレクションのメンバーです
ChartObject オブジェクトは、Chart オブジェクトのコンテナーとして機能します

Chart オブジェクト
https://msdn.microsoft.com/ja-jp/library/office/ff194426.aspx


ChartObjectsはChartObjectをコレクションしたもの
ChartObjectはChartのコンテナ

dim chobjs as ChartObjects
dim chobj as ChartObject
dim ch as Chart

set chobjs = Worksheets(
0820デフォルトの名無しさん2016/04/14(木) 00:18:16.15ID:ue9e86d/
>>818

シート中のグラフはChartObjectsにコレクションされている
そのコレクションの中にChartObjectがあり
https://msdn.microsoft.com/ja-jp/library/office/dn254146.aspx
に示されるプロパティなどを持つ

ChartObjectに対して一つだけChartが含まれる
0821デフォルトの名無しさん2016/04/14(木) 00:24:49.35ID:p7xelN/l
>>819
>>820
ありがとうございます。
全てきれいさっぱり解決いたしました。
懇切丁寧に教えていただき、本当に助かりました。
0822デフォルトの名無しさん2016/04/14(木) 05:29:44.20ID:huHx40xB
すみません質問があります。
会社のPC(Windows7, Excel2010)の時だけ、開発タブの挿入がグレーアウト
されていて、ActiveXコントロールが挿入できなくなっています。
以下は試したことです。
・セキュリティセンターからActiveXの設定とマクロの設定を、いずれも一番下
の推奨されない緩いセキュリティに変える。
・シートの保護、ブックの保護がかかっていないか確認。
・適当なローカルな場所を信頼できる場所に追加し、そこから開いてみる。
いずれも不可です。箸にも棒にもかかりません・・。

ぐぐっても、セルが入力状態にあるから云々とか、いやそうではないんだが・・的な回答しか
見つかりませんでした。

有り得そうな原因あったら教えて下さいm(__)m
0823デフォルトの名無しさん2016/04/14(木) 05:42:43.57ID:S5Z9jjbX
>>822
Ctrl+6を押してもダメだった?
0824デフォルトの名無しさん2016/04/14(木) 06:07:36.36ID:huHx40xB
>>823
Ctrl+数字にもショートカットが割り当てられているとは知りませんでした。
他にも色々あるようで、勉強になります。
会社行ったら試してみます。
0825デフォルトの名無しさん2016/04/14(木) 06:49:44.19ID:ue9e86d/
https://support.microsoft.com/ja-jp/kb/3025036

これかも
0826デフォルトの名無しさん2016/04/14(木) 07:35:13.50ID:huHx40xB
>>825
情報有難うございます。
しかし、私の状態だと挿入ボタン自体が押せないので、
このエラーメッセージが出る前段階だと思われますが、
貼って頂いたサイト記載の更新プログラムを適用したら、解決するかもしれないので、
会社のインストールされた更新プログラムでKB2920813がなければ、インストールする許可を得て、
試してみます。
0827デフォルトの名無しさん2016/04/14(木) 10:53:44.19ID:43q2R/oL
VBAのクラスでインターフェイスも使えるときいたんですが
その使い方を詳しく書いてるサイトはどこかありませんか?
0828デフォルトの名無しさん2016/04/14(木) 11:20:51.41ID:n4RA/uSu
そういう話は他所でやれって言ってんだ、クサレチンカス野郎
何度言えば判るんだ
0829デフォルトの名無しさん2016/04/14(木) 11:31:41.16ID:43q2R/oL
なんだとこのやろう
きさまはバカだからアホなのだ
0830デフォルトの名無しさん2016/04/14(木) 11:33:00.10ID:rJmmubWG
>>829が馬鹿でウンコ野郎なのは言うまでもない
0831デフォルトの名無しさん2016/04/14(木) 12:19:36.70ID:RBjQzGN9
ここも遂に美少女のウンコの話題か?
0832デフォルトの名無しさん2016/04/14(木) 12:36:29.71ID:r/b7CawP
>>829
ここの>>1は結構制約がきついからしょ
うがないんだよ
0833デフォルトの名無しさん2016/04/14(木) 13:45:21.03ID:43q2R/oL
糞!
0834デフォルトの名無しさん2016/04/14(木) 20:52:06.46ID:CUrJ0Q0x
>>827

http://www.amazon.co.jp/exec/obidos/ASIN/0782129781/thomjp0d-22/
0835デフォルトの名無しさん2016/04/14(木) 21:10:40.88ID:S5Z9jjbX
>>834はアフィ
http://www.amazon.co.jp/dp/0782129781
0836デフォルトの名無しさん2016/04/14(木) 23:24:10.90ID:JKOdJScv
お前らうんことかチンカスとか大好きだな
小学生のガキみたいだ
0837デフォルトの名無しさん2016/04/15(金) 22:29:40.22ID:rhf3krUn
>>834-835
「すぐわかるSUPER Excel配列マジックを極める」
配列かと思ったら配列数式で別物っぽかった
0838デフォルトの名無しさん2016/04/16(土) 10:45:55.47ID:peZgGr8u
>>837
こういうやつか
https://support.office.com/ja-jp/article/配列数式のガイドラインと例-3be0c791-3f89-4644-a062-8e6e9ecee523
有用かもしれん。かもしれんが...
0839デフォルトの名無しさん2016/04/16(土) 14:44:56.55ID:qELknsqA
おっさんの作ったコード、同じような処理をメインのプロシージャに何回も直書きしてるのはなんなの…
一応勉強したなら必要に応じてサブに分けることもわかってるでしょ
0840デフォルトの名無しさん2016/04/16(土) 19:19:51.75ID:tDYh9Y5u
教えてください
エクセル2010です
月ごとにシートがあり、シートの中には縦に1日から月末まで1日1行の表があります。シート名は月の数字です4,5,6....12,1,2,3
ファイルを開いた時に、今月のシート・今日の行の任意の列のセルにカーソルが行くのを、マクロでどう書けば良いでしょうか?
0841デフォルトの名無しさん2016/04/16(土) 19:27:20.66ID:xQvQS4SD
>>840
date()関数と
month()関数、day()関数を使って月、日を取得して
sheetとrowを指定する

これをbook_openに記述する
0842デフォルトの名無しさん2016/04/16(土) 19:31:37.58ID:tDYh9Y5u
>>841
ありがとうございます
それをどう書くのかが分からなくて、すみません
0843デフォルトの名無しさん2016/04/16(土) 19:34:25.31ID:xQvQS4SD
>>842
マクロの記録をしてみたら書き方が判る
そしてググる
0844デフォルトの名無しさん2016/04/16(土) 19:46:07.66ID:T2HjmXrG
>>842
Private Sub Workbook_Open()
  Sheets(Format(Date, "m")).Select
  Cells(Day(Date), 1).Select
End Sub
0845デフォルトの名無しさん2016/04/16(土) 20:00:13.87ID:tDYh9Y5u
>>844
あ、ありがとうございますm(_ _)m
0846デフォルトの名無しさん2016/04/17(日) 03:40:19.03ID:HRAtrX3A
ファイルの作成日時・最終更新日時を取得する
Sub Sample()
Dim FSO As FileSystemObject

Set FSO = New Scripting.FileSystemObject
With FSO.GetFile(ThisWorkbook.FullName)
MsgBox .DateCreated & vbCrLf & _
.DateLastModified
End With
End Sub
これですがパスででファイルの場所を指定したい場合はどう書けばいいのでしょうか? C:\a\a.txt とかを指定させるには
0847デフォルトの名無しさん2016/04/17(日) 04:03:01.62ID:r1z8ZsQ7
Sub Sample()
Dim FSO As FileSystemObject

Set FSO = New Scripting.FileSystemObject
With FSO.GetFile("C:\a\a.txt")
MsgBox .DateCreated & vbCrLf & _
.DateLastModified
End With
End Sub
0848デフォルトの名無しさん2016/04/17(日) 04:09:41.37ID:HRAtrX3A
>>847
ありがとうございます。
0849デフォルトの名無しさん2016/04/17(日) 14:44:37.33ID:jC6rJSNe
▼2
▼1
△4
△3
△2
△1
セルA列にサインが出ます。
セルB列はそのサインを数えるようにしたいです。
サインが変わったらまた1から数えるようにしたいのですが、


B1=IF(MATCH(A1,A2,0),(A2+1),"")
の数式をいれたら

▼#N/A 
▼#N/A
△4
△3
△2
△1

になります。
マッチ関数が間違っているのでしょうか?
教えてください。
0850デフォルトの名無しさん2016/04/17(日) 15:09:01.06ID:raJPTXVn
>>849
=IF(A1=A2,B2+1,1)
0851デフォルトの名無しさん2016/04/17(日) 15:17:07.10ID:W8eGvwXV
>>849
サインって何?セルの値のこと?
0852デフォルトの名無しさん2016/04/17(日) 15:39:04.38ID:/MR8BgO8
>>849
えっとここ EXCEL VBAスレだよ
EXCEL関数ではなく それをVBAでやりたいって事?
0853デフォルトの名無しさん2016/04/17(日) 15:59:36.39ID:HRAtrX3A
Sub Sample()

if ・・・ then

命令あれこれ

end if

その他の命令大量

end sub

↑このようなコードで1つめの「命令あれこれ」をsubプロシージャ以外の方法で
ユニット化して組み替えができるようにする事はできないのでしょうか?

たとえば外部テキストに「命令あれこれ」のコードを切り出しそこを書き換えれば
上のサブ以下の「命令あれこれ」のコードが書き換わるみたいな事はできないのでしょうか?
ようは特定のコードの書き換えだけならブックを開いてVBEを開いてとかやらなくても
外部テキスト化などができればものすごく便利だのになあと思っているのですが。
0854デフォルトの名無しさん2016/04/17(日) 16:11:17.64ID:/MR8BgO8
>>853
たしかVBAでも
標準モジュールとかの外部ファイルとの インポート/エクスポート や
モジュールのコード直接書き換えとか出来たハズよ
ただコンパイルタイミングとか分ってないと辛いかも

結構昔にやった記憶があるだけで 具体的どうやるかは 記憶の彼方なのでゴメンです。
0855デフォルトの名無しさん2016/04/17(日) 21:35:13.13ID:xHtHaS0e
ソースコードを自由に書き換える事が出来てしまうってかなり危険なんじゃ。

標準モジュールやフォームモジュールを出力をするのは作ったけど。
それが出来るのかどうかは知らないけど、

"VBA プロジェクト オブジェクト モデルへのアクセスを信頼する" 辺りを手掛かりに探せば良いとは思うけどさ。
0856デフォルトの名無しさん2016/04/17(日) 22:03:43.00ID:yiGLg3bp
>>853
そのための機能がSubプロシージャなのに、どうしてそれを否定して違うことやりたがるのか理解に苦しむ
変なこと考える前に、もっと勉強した方がいいんじゃないかな
0857デフォルトの名無しさん2016/04/17(日) 22:07:33.78ID:raJPTXVn
VBAでやるような処理を、条件分岐を使わずに自己書き換えするメリットってなんだろう
もし分岐のパターンが複雑なら、書き換えのパターンも同じぐらい増えて複雑になるはずだし
0858デフォルトの名無しさん2016/04/17(日) 22:21:24.39ID:c0D8Inbp
>>853
真の目的がよくわからないけど、
Sub Sample の柔軟性を高めたいだけなのか、ソースコードをいじることなく処理を可変にしたいのか・・・
0859デフォルトの名無しさん2016/04/17(日) 23:18:07.54ID:xHtHaS0e
どこに書くかはともかく、そのパターンを書いておかないといけないのは一緒でしょ?
サブルーチン化してモジュールに書いておけばすむことだと思うけどね。
出来たとして、そのテキストを誰かに差し替えられたりしたらどうするのさ
0860デフォルトの名無しさん2016/04/17(日) 23:28:59.43ID:p7U7DtRq
やりたいのはVBE以外での開発だろ
VBA一筋の人にはわからんかもしれんが、IDEとしては発狂するほどクソだから
0861デフォルトの名無しさん2016/04/17(日) 23:33:31.31ID:c0D8Inbp
>>860
ctrl + Y 以外のことは我慢しよう
0862デフォルトの名無しさん2016/04/17(日) 23:34:16.13ID:osDqr2dw
>>853
dllでやる
0863デフォルトの名無しさん2016/04/17(日) 23:58:19.39ID:c0D8Inbp
>>853
命令あれこれの部分がどういう仕様になっているのか、外部のリソースを参照しないとわからないのは、かなり致命的な気がするんだが。
「便利さ」なんかと引き換えにしちゃいかんのじゃないだろうか。
0864デフォルトの名無しさん2016/04/18(月) 19:11:17.64ID:d9atAd1x
>>853
それが出来ればウイルスも簡単に作れるね。

と言う訳で知ってても教えない。


ま、知らないけど(・ω・)ノ
0865デフォルトの名無しさん2016/04/19(火) 01:15:29.56ID:757TeAdd
>>864
データ改ざんや盗み見・横領なんかがしほうだいになるわけですね。わかります。
0866デフォルトの名無しさん2016/04/19(火) 03:57:41.45ID:gWOhS/GA
>>864
つまりインクルードのある言語は全て危険なんですね
0867デフォルトの名無しさん2016/04/19(火) 04:32:24.40ID:4deCqraJ
FXをリアルタイムで取得しています。
関数などで計算して、指定したセルに数値が出たら
自分のスマホにメール送信って可能でしょうか?
どのような入力になりますか?
0868デフォルトの名無しさん2016/04/19(火) 05:00:52.58ID:8AqzAaWi
メールならOutlook VBAじゃないの。
0869デフォルトの名無しさん2016/04/19(火) 06:39:59.45ID:F3hUMhv7
>>867
可能です
changeイベントを使います
メール送信部分はVBAなんでも質問スレで聞いてね
0870デフォルトの名無しさん2016/04/19(火) 13:01:35.31ID:6Wh9TF6d
>>867
さっぱり見えないけど
Excel を常時立ち上げたままネットから情報取得させてるという前提でいいの?
関数に必要なパラメータ一式をExcel側で取得するところまではできているの?
定期的にその関数を呼び出してセル更新?する処理もあるの?
メール送信はフリーソフトで出来るっぽいけど
0871デフォルトの名無しさん2016/04/20(水) 00:17:31.91ID:bmaSmBeI
標準モジュールとクラスモジュールの処理速度なんだけど、
同一標準モジュール内のプロシージャを呼び出して使うより、
クラス化してメソッドとして呼び出す方が圧倒的に速い?
0872デフォルトの名無しさん2016/04/20(水) 00:26:16.78ID:J5Y7SWJ2
>>871
いんや、普通に考えてそれだけだったらインスタンスとしてヒープエリアに展開するだけ余計に時間が掛かるよ。
0873デフォルトの名無しさん2016/04/20(水) 00:51:55.20ID:9kzdASoC
インスタンス化した後の性能で比較するとしても、やはり標準モジュールの方が速いと思う。
0874デフォルトの名無しさん2016/04/20(水) 00:54:02.30ID:Wvmif1u5
まあそんな大した差ではないだろ
コードが綺麗になるならそうしよう
0875デフォルトの名無しさん2016/04/20(水) 00:55:56.64ID:QaoF6bar
>FXをリアルタイムで取得しています。
日本語でおK
0876デフォルトの名無しさん2016/04/20(水) 01:27:50.52ID:HI3dt0d7
鉄人28号FX
0877デフォルトの名無しさん2016/04/20(水) 06:50:57.36ID:XnBYIzBk
>>871
まずはやってみればいいと思う
0878デフォルトの名無しさん2016/04/20(水) 10:23:11.60ID:oXU9Jk7I
>>871
1GHzのCPUって、ざっくりいうと1秒間に10億個の命令を処理できる(正しい計算方法は調べること)。
これは、1ms(1/1000秒)で100万個の命令を処理できるということ。

さて、
> 同一標準モジュール内のプロシージャを呼び出して使う

> クラス化してメソッドとして呼び出す
では、何回実行すれば100万個の命令差=1msになるだろうか。

何千・何万・何十万回実行して、やっと1msの違いがでるような速度差を気にして、
なにかいいことがあるだろうか。
0879デフォルトの名無しさん2016/04/20(水) 10:34:58.18ID:C6NCjoHD
それはCPU内だけの話だな。
0880デフォルトの名無しさん2016/04/20(水) 12:39:32.03ID:r07pzD8i
CPI とかマルチコアとかも知らなさそうなアホに構うなよ
0881デフォルトの名無しさん2016/04/20(水) 13:20:51.71ID:NoLhLRW8
VBAからbatファイルをShellObject.Runで起動していたんですが、
Windows10にしたら起動しなくなりました。
管理者権限のせいだと思うのですが、VBAからbatを管理者権限で起動するにはどうすればいいでしょうか
0882デフォルトの名無しさん2016/04/20(水) 14:26:04.17ID:VSWmyNUM
runas使うとか

つか、元のVBA(EXCEL)を管理者権限で開けば行けないか?
0883デフォルトの名無しさん2016/04/20(水) 15:01:03.56ID:NoLhLRW8
元のEXCEL.exeを管理者権限で開くと、そこから目的のxlsmを開けばいけたんですが
ファイルを直接開くとエラーが出て開けませんでした
Set ShellObject = CreateObject("WScript.Shell")
ShellObject.Run strFNAME, 0, True
くらいの簡単な記述で出来ればいいのですが
0884デフォルトの名無しさん2016/04/20(水) 16:48:20.84ID:BnTCMp9k
ググればいっぱいでてくるとおもうが
なせググらない?
0885デフォルトの名無しさん2016/04/20(水) 17:08:52.69ID:JHESp5IW
ググるのもここで聞くのも「ネットで調べる」点で同列と思ってるんじゃまいか。
0886デフォルトの名無しさん2016/04/20(水) 17:54:09.77ID:BnTCMp9k
なるほどね まっどっちでもいいけど
ググった方が 時間的効率は 格段にいいとおもうがなwww
0887デフォルトの名無しさん2016/04/20(水) 18:56:25.56ID:JHESp5IW
>>886
そうなんだけど、ググる時もいろいろな検索ワードを試して求める答えにたどり着くプロセスがあるし、
誰かと誰かの間のQ&Aを見て解決することも多いから、リアルタイムで質問を投げるのと同じ感覚になってしまうの「かも」れない。
0888デフォルトの名無しさん2016/04/20(水) 19:06:03.07ID:Sur/P73h
>>878
そうか。意外に少ないんだな。
0889デフォルトの名無しさん2016/04/20(水) 19:44:31.05ID:BDVeszGl
あー、vbaの代わりにjsがExcel上で走るようにならないかなー!
0890デフォルトの名無しさん2016/04/20(水) 20:15:26.95ID:o6av1Mmh
オブジェクトの仕様がクソだとかエディタがクソだとかそういう文句はMSに言え
0891デフォルトの名無しさん2016/04/20(水) 20:21:45.08ID:UrqjqFdn
>>890
いや、ctrl+Yのことは許さない。
0892デフォルトの名無しさん2016/04/20(水) 20:24:29.79ID:UrqjqFdn
ところでVBA学ぶ合宿とかないですか?
0893デフォルトの名無しさん2016/04/20(水) 20:30:15.51ID:hWyRlGG/
オープンソースにしたんだし.net周りの言語使えるようにして欲しいな
0894デフォルトの名無しさん2016/04/21(木) 08:40:54.66ID:cHASgz3R
ショートカットはあまり使わないが
ctrl+Yを押すと一体何が起こるの?
0895デフォルトの名無しさん2016/04/21(木) 09:52:05.60ID:tp4wI+eO
>>894
普通ctrl+yはctrl+zの逆の動作。
「やり直し」と「元に戻す」でペアになっている。
ほとんどのアプリがそうなってるし、そもそもExcelもその仕様。 指が覚えてしまってる人も多いだろう。
それなのにVBEでは「行削除」に割り当てられていて変えることができない。(「やり直し」はメニューからやるしかない)
ついうっかりctrl+yすると、それまでの履歴が消えてしまうという糞仕様。
0896デフォルトの名無しさん2016/04/21(木) 11:02:32.90ID:S3Ke5d3Q
そもそもRedoしたことが、人生で一度もない
0897デフォルトの名無しさん2016/04/21(木) 11:40:18.58ID:tp4wI+eO
>>896
UnDoで行き過ぎたことない?
0898デフォルトの名無しさん2016/04/21(木) 13:30:07.70ID:S3Ke5d3Q
>>897
Undo自体めったにしない
連続したUndoは、多分人生で一度もない
0899デフォルトの名無しさん2016/04/21(木) 13:52:33.94ID:tp4wI+eO
過去を振り返らない男か...
0900デフォルトの名無しさん2016/04/21(木) 15:02:59.43ID:EBzeLfdf
ctrl+yはたしか、VBのエディタで行削除だったのを引き継いでる
Windows3.0とかのキーアサインは今と色々違ったからな
0901デフォルトの名無しさん2016/04/21(木) 15:49:21.36ID:Gwayf2Bu
Ctrl+Yが行削除なのはMS-DOS時代のテキストエディタの操作を引き継いでる
0902デフォルトの名無しさん2016/04/21(木) 18:56:53.25ID:2f4qYReE
それAHKでなんとかできないの?
俺はVBEでそこまで必要としてないから試してないけど
09036542016/04/21(木) 20:55:15.15ID:8hRn9v6h
キーボードを開いてキーを入れ替えれば良い
面倒ならキーにシールを貼れ
0904デフォルトの名無しさん2016/04/21(木) 21:08:54.97ID:tp4wI+eO
>>903
何のこと?
0905デフォルトの名無しさん2016/04/21(木) 21:34:29.19ID:CB8M35k1
>>904
糞言語をやりすぎてバカになったんだよ
放っといてあげよう
0906デフォルトの名無しさん2016/04/22(金) 19:07:15.16ID:m77bnIuU
エクセル2000、Win7です。
ブックを5つ開いています(起動順にブック1、ブック2・・・ブック5とします)。
タスクバーのアイコン?の並び順は起動順になりますが、
ブック1のマクロのうち特定のマクロを動かすと、
(マクロの内容:ブック1内のデータを用いて新規ブックにグラフを作成する)
タスクバーのアイコンの並び順がブック2、ブック3、ブック4、ブック5、ブック1、グラフ用の新規ブックと並び変わってしまいます。

マクロを実行してもタスクバーのアイコンの並び順が変わらないようにしたいのです。
アドバイスをお願いします。
0907デフォルトの名無しさん2016/04/22(金) 19:19:02.37ID:42XCwyF9
無理な方に100円。
知らんけど
0908デフォルトの名無しさん2016/04/22(金) 19:22:49.14ID:xlPUEc9A
>>906
全部処理が終わったら
希望順に並べる。
0909デフォルトの名無しさん2016/04/22(金) 19:47:38.13ID:zkjwnIQC
>>906
配列かコレクションに開いてるブックの名前、パスを最初の並び順通りに挿入しといて処理後に戻せばいいんじゃないの
並び順をどうやって変えるかは知らん
0910デフォルトの名無しさん2016/04/22(金) 19:57:53.06ID:m77bnIuU
>>907
無理ですかね・・・
>>908
ブックを閉じずに並び替える方法ってあります?
>>909
やろうとするとそうなりますよね?
お手軽な方法があればなと思い質問させてもらいました・・・
0911デフォルトの名無しさん2016/04/22(金) 20:44:29.78ID:zkjwnIQC
並び順に拘る理由はなんなの?
後の処理に差し支えるとかならその処理を見直したり、ブックを一度に開きまくるのをやめたりしたほうがいいと思うけど
0912デフォルトの名無しさん2016/04/22(金) 21:50:54.42ID:m77bnIuU
>>911
タスクバーの同じ所をクリックすると同じブックがアクティブになるというのは大変ありがたいのです。
タスクバーの下から3つ目をクリックするとブック3がアクティブになる、
タスクバーの一番下をクリックするとブック5がアクティブになる、この法則が崩れると困るのです・・・
0913デフォルトの名無しさん2016/04/22(金) 22:36:39.21ID:jO++qPGL
そんな使い方が常態化してる業務は滅びていい
もしくはその5mm高のバーを画面内にボタン配列でフロートさせとけよ 並び順は不変にできるぞ
ブックのアクティブとボタンのアクティブを連動させりゃ、グラフシートが有るとき無い時の判別も楽
0914デフォルトの名無しさん2016/04/22(金) 22:56:33.91ID:HoGcTshw
>>906
ブック2345を閉じて再度順番に開くとか
0915デフォルトの名無しさん2016/04/22(金) 23:06:39.36ID:42XCwyF9
これができるといろんな人が助かる、とか応用が利いて役立つ、とか
そういう質問/回答の余地はもうVBAに残ってないのかな...
0916デフォルトの名無しさん2016/04/23(土) 08:55:02.77ID:Pv94Wakc
BookA, BookB, BookC, BookD, BookE, Boof, BookGがあって
これらのファイルに共通の同じマクロが入ってて
なにか修正が必要となったときすべてのBookを開いて修正して保存するという作業が面倒です。
なにかいい方法はありますか?
0917デフォルトの名無しさん2016/04/23(土) 08:56:33.32ID:Pv94Wakc
これは他ユーザもみんな使うので
自分のPCだけで完結する方法以外で。
0918デフォルトの名無しさん2016/04/23(土) 09:09:49.48ID:c0gAexeq
>>917
A修正後、コピペする。
0919デフォルトの名無しさん2016/04/23(土) 09:11:47.05ID:ZKGi6a/4
ブック内に存在する情報をデータベース化して一枚のシートに納め、これを読み込んで動作するシステムにする。
そしてシステムを更新した場合は、そのデータベースシート一枚をコピーしたひな形に移す。
0920デフォルトの名無しさん2016/04/23(土) 09:24:16.89ID:W+6KnVEb
>>916
てか共通の同じ部品ならアドインにすればいいんじゃね?
0921デフォルトの名無しさん2016/04/23(土) 09:35:34.95ID:KUgCZOSa
データの共有で表現できることなら>>919だろうけど
プログラムロジックそのもの(つまりライブラリ化)であれば>>920
0922デフォルトの名無しさん2016/04/23(土) 10:21:23.61ID:Pv94Wakc
>>918
あなたダメ(ワラ。コピペの手間や、コピヘ忘れなどがあるからこそそれを改善したくて質問してるのに。

>>919
どういうことでしょう?ブックはそれぞれ別の人も担当してることがあるのでブックを1つにまとめることはできませんよ。

>>920
他のユーザたちがアドインの方法とか知らないし、こんなExcelマクロを使う作業って他に100くらいある仕事の作業の1つなので
ユーザに手間暇かけさせることはしたくない。
0923デフォルトの名無しさん2016/04/23(土) 10:32:47.26ID:ZKGi6a/4
>>922
「ブック内」の情報を「一枚のシートに納める」っつってんだろ。
要するにマクロを移すんじゃなくてデータの方を移すんだよ。
0924デフォルトの名無しさん2016/04/23(土) 10:37:16.52ID:c0gAexeq
>>922
まー今のままで続行を
勧めるよ。
0925デフォルトの名無しさん2016/04/23(土) 10:37:20.52ID:KUgCZOSa
>>922
BookA, BookB, BookC, BookD, BookE, Boof, BookGは各人が別々のコピーを持つんじゃなくて共有ファイルなんでしょ?
アドインを参照設定した状態でセーブしておけばユーザに手間なんかかからない。
0926デフォルトの名無しさん2016/04/23(土) 10:38:42.07ID:6wSq8qCO
>>922
共通部分のマクロだけのブックを用意してApplication.Runで呼び出す
0927デフォルトの名無しさん2016/04/23(土) 11:17:36.56ID:Pv94Wakc
>>925
そのアドインってなに?というアホ社員がいっぱいいるんですよ。
もし言ったらこんなアイーン体操をはじめるような人たちばかりなので。
https://www.youtube.com/watch?v=fMAOroDQxaQ
0928デフォルトの名無しさん2016/04/23(土) 11:21:07.27ID:Pv94Wakc
>>926
それはいい方法かもしれないけど
うちのネットワークでは他ファイルを開くのはかなり時間(遅いときは10秒以上)がかかることもあってやりたくないんですよね。
0929デフォルトの名無しさん2016/04/23(土) 11:27:42.41ID:xYCWXxgr
>>916
それだけ色んな条件並べるんなら、
誰か別の人間にやらせるってのが一番楽だろうな…
0930デフォルトの名無しさん2016/04/23(土) 11:34:58.31ID:ZKGi6a/4
この手の後から後から情報という名の言い訳が出てくるタイプは自分で解決する気がないから関わるだけ無駄だな。
0931デフォルトの名無しさん2016/04/23(土) 11:35:28.61ID:q7oeQNm7
>>928
そんなに秒単位を争うような作業を大勢でやってるのか?しかもExcelで
マクロの修正作業は10秒どころじゃ済まないし
10秒待てば解決するんならそれが最善に見えるんだけど
0932デフォルトの名無しさん2016/04/23(土) 11:37:47.07ID:a9/ixjX8
>>928
コンサルとかに金払って問題解決してもらえ
0933デフォルトの名無しさん2016/04/23(土) 11:39:56.52ID:a9/ixjX8
良い方法を思いついたけど書かない
0934デフォルトの名無しさん2016/04/23(土) 11:41:25.44ID:368nvyQH
そもそも現時点でソースの書き換えはいつやってんだよ
みんなが帰ったあと一人で残業してんのか?
そんだけ手間をかける価値と作業量のある仕事なら書き換えアプリをVBAで自作するしかないな
0935デフォルトの名無しさん2016/04/23(土) 12:39:06.71ID:svVKDJrT
>>922
DB導入して
ロジック データ 画面を分離しな。
粗結合を意識なさい。
0936デフォルトの名無しさん2016/04/23(土) 12:47:45.10ID:KUgCZOSa
>>927
だ か ら ー

アドインをあんたが作ってあんたが参照設定してアホ社員には何も言わず黙っときゃいいだけでしょ?
0937デフォルトの名無しさん2016/04/23(土) 15:01:20.09ID:k86gIYl8
>>922
>>あなたダメ(ワラ
この言い方 俺宛てでなくとも イラッってくるな

因みに VBAで他ブックのモジュールのコード書き換えは出来る
ブックオープン→書き換え→セーブ→クローズ
ってね

ブック.VBProject.・・・.・・・.・・・ で操作する
これ以上は教えない 自分で調べてね
0938デフォルトの名無しさん2016/04/23(土) 18:04:14.48ID:pLBuIEOb
むしろみっちり作り込んだのをまんま提供してやって
後々仕様変更発生した時点で当人がへどもどする様を眺めるのがいいんじゃ
この手の輩は結果だけを要求してるから経過に苦労していないと全お手上げに嵌るんだし
で、社内で居場所無くしてスピン・オフしてくと そこまで見えるのにw

最近こういう手合い多いね 昔っからかな? ある意味テンプレ人間だわな

こんなとこで相手を「あなた」呼ばわりするなんてのは日本人じゃ無い系統を想起させるし
09399372016/04/23(土) 19:23:07.77ID:k86gIYl8
>>938
いいたい事 分るけれども
みっちり作り込むのメンドイから
単純に テキストファイルからモジュールに流し込む形で作ってたのよね
で・・・あれ見つけて やーーーめたって事なのよ
0940デフォルトの名無しさん2016/04/23(土) 21:23:57.09ID:KUgCZOSa
あれって何さ
0941デフォルトの名無しさん2016/04/23(土) 21:41:08.42ID:xaeIxYUv
はは〜ん、この流れ>>939が真の無能やな…
0942デフォルトの名無しさん2016/04/23(土) 22:07:26.21ID:KUgCZOSa
元々の>>916の要望自体どうでもいい事だな。
0943デフォルトの名無しさん2016/04/24(日) 00:40:41.23ID:Wg29Bkb/
>>936
>>927はいっぱいいるアホ社員の内の1人ということなんだろう
0944デフォルトの名無しさん2016/04/24(日) 01:03:33.11ID:Wg29Bkb/
この皆をイラッとさせる物言い、C++erの臭いがプンプンするな
だからアドインがどういうものかよく知りもしないで適当なこと言ってるのが見え見えだ

C++erなら共通部分をdllで作ってそれを参照させとけば修正が発生したときに
それを直して置き換えればいいだけだろ

いつものようにVBAで出来ないことのアラ探しをしては結局出来て恥をかく
ちんこプラプラーのいつものパターンだな
0945デフォルトの名無しさん2016/04/24(日) 09:35:23.89ID:pg4TufYW
>>943
なるほど
0946デフォルトの名無しさん2016/04/24(日) 09:54:30.27ID:IAGUz2Lj
vbaのフォームのCheckBoxで、
クリックすると、レが入り、
もう一度クリックすると、レが消えるコードは
どう記述するの?
教えてm(_ _)m
09479462016/04/24(日) 10:00:08.32ID:IAGUz2Lj
上の質問は取り消します。
クリックすれば、交互にレが出たり消えたりしますね。
0948デフォルトの名無しさん2016/04/24(日) 10:42:14.68ID:6Vo9vF9I
>>944
アホ社員しかいない職場でなければアドインは結構まともな解決策に見えるけど?
09499362016/04/24(日) 10:53:24.81ID:pg4TufYW
ところでみんな「アドイン」て何を指してる?
おれは昔ながらのxlaを作って参照させてるけど。
0950デフォルトの名無しさん2016/04/24(日) 10:55:25.89ID:bRUDllTZ
>>948
そのアドイン使えば?という問い掛けにたいするC++erの回答がこれ

927 名前:デフォルトの名無しさん :2016/04/23(土) 11:17:36.56 ID:Pv94Wakc
>>925
そのアドインってなに?というアホ社員がいっぱいいるんですよ。
もし言ったらこんなアイーン体操をはじめるような人たちばかりなので。
https://www.youtube.com/watch?v=fMAOroDQxaQ
0951デフォルトの名無しさん2016/04/24(日) 10:59:08.32ID:bRUDllTZ
>>949
vbaのスレだし
その認識で合ってると思うよ
あとxlam
0952デフォルトの名無しさん2016/04/24(日) 11:43:55.94ID:4N6CUDmc
Access使え。
0953デフォルトの名無しさん2016/04/24(日) 12:09:40.29ID:/zPW9y1n
VBAのformも古臭いし.netの使えるといいなぁ
0954デフォルトの名無しさん2016/04/24(日) 12:12:07.00ID:PJXOgY3X
会社で使うならいずれAccessは負の遺産ぽいことになるのじゃないか。
0955デフォルトの名無しさん2016/04/24(日) 13:08:09.17ID:0aotVlm+
デスクトップ・アプリなんざ、時代に沿って変わってくからいいんだよ
激安・格安サーバスレで丁度話題に成ってるけど 工作機系の専用ソフトが
三十年前のPC-98と共にいまだに健在とかww
PC側変えたら工作機の運用に支障を来たすってのが理由らしいけど

ExcelにしろAccessにしろ、所詮単体の業務アプリなんだろ?
例えば仕入れと売り上げと在庫と社員の管理とかまで連動させてるとかだとしても
どうしてもExcelでなきゃ、Accessでなきゃできない ってもんでもあるまいし
いずれは置き換えられるものって認識でいいだろ
0956デフォルトの名無しさん2016/04/24(日) 13:10:48.69ID:PJXOgY3X
アプリはね。
データはそうはいかないでしょ。
0957デフォルトの名無しさん2016/04/24(日) 16:06:35.24ID:3T0zrWfi
>>928
礼はどうしてしないの?
0958デフォルトの名無しさん2016/04/24(日) 17:31:27.89ID:pg4TufYW
>>957
ヤツはどの回答を選んだのだろうか・・・
0959デフォルトの名無しさん2016/04/24(日) 21:11:20.76ID:TbfVfLGL
>>958
たぶん、何もしてない
0960デフォルトの名無しさん2016/04/24(日) 22:06:24.64ID:0aotVlm+
>>956
? だから、そのデータを扱うなら何でもいいだろ?と、宣ってるんだが?
このままいくと負の遺産になるぞ、こりゃ  って段階で切り替えてけるだろ 業務アプリなんざ
一太郎+Lotus1-2-3 を乗っ取ってExcelが台頭してきた歴史は、Excelであれ同じ運命を辿る
可能性はいくらだってある  だから >>954 は杞憂だぜ ってことを言っている
0961デフォルトの名無しさん2016/04/24(日) 22:07:21.40ID:FgR2Tyvt
xlamでアドイン作るとブックの起動時に強制的に再計算かかって重くなるんだけどなんとかならないの
0962デフォルトの名無しさん2016/04/24(日) 23:16:23.25ID:PJXOgY3X
>>960
データそのものをaccdbとかmdbで蓄積することを言ってるんだが。
最初は基幹のOracleデータを補助するだけのものだったのに次第にそれがないと立ち行かなくなっていく例はけっこうある。
しかも似てるけど互換性のないテーブルが乱立するとか。
0963デフォルトの名無しさん2016/04/24(日) 23:47:52.49ID:a75zU25a
その場しのぎのメンテナンスが繰り返されるうちに
カラム「予備3」にキー項目が設定されている羽目に。
0964デフォルトの名無しさん2016/04/25(月) 12:18:37.69ID:3vkHcbWk
Oracleだろうとなんだろうと、テーブルからエクスポートするなりなんなりで
データは取り出すだろ  他のシステムに移行していく時には真っ先にやる作業じゃ?
たしかに印刷以外テーブル内容を外部出力できない業務アプリには何度もお目に
掛かったことはあるけれど、だとしてもそれしかない手段の中でなんとかしてくだろ

必要になったときにはすでに開発元が雲散霧消してるケースだってごまんとあるし
企業側としてはきちんとそのシステムでデータをエクスポートできることを確認して
おくのが最低限の検収条件なんじゃないのか?
スレチですまん 900過ぎるとつい気が緩んで、、、

カキコ前に改めて読み直すと補完用だったものが主要業務に成りつつあるってケースか
それこそ負の遺産一歩手前 って認識は無いのかな? 現状をキチンと見直さないと
将来に負担を掛けるだけなのに  後は野となれ山となれシステムなんかな いいな、呑気で
0965デフォルトの名無しさん2016/04/25(月) 12:21:49.52ID:RM4kY/BS
>>964
なんかとりとめのないレスだな。
>>952 に対する >>954なんだが
0966デフォルトの名無しさん2016/04/25(月) 12:23:10.55ID:HAN4rWcZ
うちの会社も共有ファイルにmdbファイル一杯だわ…
でも一番安いし、何より作るの簡単なんだよなぁ
データベースサーバー高いから予算中々つかないし、
基幹システムはsierに外注してて中身よく分からん…
linkstationなら安いから、webサーバー機能で社内向けのちょっとしたwebアプリ作るとか、mysql機能もあるからそこにテーブル作れないかなと妄想してるけど、みんなどうやってんのかな…vba+accessで複数人はもう使いたくない
0967デフォルトの名無しさん2016/04/25(月) 12:27:07.83ID:NFRnXeoT
>>966
RDBならmysql, postgresql, sqliteとかオープンソースソフトウェアのがある
サーバマシンが無いのかもしれないけど
仮想マシンで何とかなるかもしれないし
0968デフォルトの名無しさん2016/04/25(月) 12:47:30.58ID:HAN4rWcZ
>>967
ありがとうございます。
仮想マシンなんて技術があるのか…ググって勉強してみよう(無知ですみません
社内excelerばっかだから、accessにデータ落として集計、一覧表(excel)やら請求書(excel)作る作業が多いんです
ただaccessはぶっ壊れやすいし、何よりファイル多すぎて何処にどのデータがあるか分からん…
基幹システムは帳票出力機能を削ぎ落としてるから全部vbaでexcelに出力してます
accessは一人で使う分用だととっても便利ですけどね。
0969デフォルトの名無しさん2016/04/25(月) 12:50:51.54ID:a+5IMKkL
パソコンを業務に使うという特性を理解できず、運用上の可能性を無視する奴がデータ管理用システムを発注すると碌な事にならない。
0970デフォルトの名無しさん2016/04/25(月) 12:54:47.57ID:GNzXw6NX
>>966
> データベースサーバー高いから予算中々つかないし、
今時 SQL-SERVER でも Oracle でも無償版があると言うのに何を言ってるんだ?
LinkStation とかでごにょごにょするくらいなら適当なPCに RAID カードと HDD 追加した方がいい
あと UPS とバックアップ先(これは最悪 LinkStation とかでもいい)を準備すればいい
0971デフォルトの名無しさん2016/04/25(月) 13:24:25.07ID:2hrXBsO/
>>970
アプリ本体がいくら安くても、業務で使うからには保守契約が必ず必要になってお金がかかるんだよ
それを入れるサーバーも家庭用のパソコンでは信頼性が低すぎるから普通は使わないしね
就職活動頑張ってね
0972デフォルトの名無しさん2016/04/25(月) 14:25:28.28ID:ZJbx2t44
業者なしでやるととばっちりは全部自分に来るからねぇ
0973デフォルトの名無しさん2016/04/25(月) 15:10:49.55ID:RM4kY/BS
しかし気付けばスレ違いだな
0974デフォルトの名無しさん2016/04/25(月) 15:36:33.03ID:a+5IMKkL
じゃあエクセルVBAでDBシステムをどう構築するかの話しようぜ。
0975デフォルトの名無しさん2016/04/25(月) 15:46:03.29ID:kKT6Zxsu
>>974
DBはナニを使うの?
0976デフォルトの名無しさん2016/04/25(月) 16:04:31.17ID:a+5IMKkL
>>975
エクセルなんだからスプレッドシートだろ。ListObjects含む。
0977デフォルトの名無しさん2016/04/25(月) 18:38:31.73ID:4+TL6fkh
>>976
漢だねぇ
0978デフォルトの名無しさん2016/04/25(月) 18:40:26.21ID:CQQ7YGRP
>>975
ポスグレかsqliteだな
odbcでいただきます
0979デフォルトの名無しさん2016/04/25(月) 20:00:00.63ID:GNzXw6NX
>>971
LinkStation の MySQL 使うって奴に何を言ってるんだ? w
0980デフォルトの名無しさん2016/04/25(月) 23:25:59.32ID:vaAh4Uci
使いやすくて可変長で型を指定できる配列的なのって標準ではないですかね?
コレクションをラッピングするしかないのかな
0981デフォルトの名無しさん2016/04/25(月) 23:54:48.68ID:gNn0n/ow
>>980
たぶん標準では無いので自分で作る
オレは使いやすくて可変長で型を指定できなくて配列的なのを使っている
0982デフォルトの名無しさん2016/04/26(火) 07:14:58.06ID:9Pm0YF2l
俺は動的配列を使ってる
ただ、空の配列を扱いにくいのが毎回癪にさわる
0983デフォルトの名無しさん2016/04/26(火) 07:41:06.50ID:a47krk46
>>982
Array()ではないもの?
0984デフォルトの名無しさん2016/04/26(火) 07:54:40.16ID:9Pm0YF2l
>>983
うん、
Dim A() As ...
ReDim Preserve A(...)
で頑張ってる
0985デフォルトの名無しさん2016/04/26(火) 08:42:56.12ID:voj+ONYJ
そういうVBA特有の苦労を無くすためにどうしてる?って流れなのにバカかよ
0986デフォルトの名無しさん2016/04/26(火) 09:13:53.28ID:gi7Fi4KV
>>980
コレクションに
クラスを入れてる
0987デフォルトの名無しさん2016/04/26(火) 10:14:07.97ID:X2oLSlFm
>>984
Dim A As Variantで、ReDim Preserve とかを内部で呼び出すメソッドを定義したクラスを作ればいいよ。
0988デフォルトの名無しさん2016/04/26(火) 12:47:48.01ID:9Pm0YF2l
>>985
煽ることしかできないバカはどっかに行けよ

>>987
そう言うのをやったこともあるけど、動的配列ごときでクラス作るのも大袈裟な気がして今は ReDim を直接使う形に戻った
0989デフォルトの名無しさん2016/04/26(火) 13:36:31.94ID:/KGvpl9k
>>988
俺は「ごとき」とは思わないけどね。
それに、クラスを作るのも大げさとも思わない。
0990デフォルトの名無しさん2016/04/26(火) 18:38:48.26ID:/KGvpl9k
『昨日までJavaJavaしてた人がいきなりExcelのVBAを実装する羽目になったときのためのメモ』
http://qiita.com/opengl-8080/items/5bd8ae7fe95f5c31dfc3

力みすぎw

例えば素直に
For Each r In Range("A1:A12")
  If r.Value Mod 2 = 0 Then
    r.Offset(0, 1).Value = "偶数"
  Else
    r.Offset(0, 1).Value = "奇数"
  End If
Next
って書いた方が100倍わかりやすい。
0991デフォルトの名無しさん2016/04/26(火) 20:06:58.79ID:xvQ9k/GM
大げさっつーかVBAだとクラスにした場合、オーバーロードがないのに、宣言っていう余計な手間が増えるからな。
標準的な機能で補える程度のものでいちいちクラス作るのは面倒ってのは分かる。
0992デフォルトの名無しさん2016/04/26(火) 20:10:44.62ID:Ky9wERPQ
>>990
「インスタンスを生成する」って本当に宣言してやんの
0993デフォルトの名無しさん2016/04/26(火) 20:30:55.60ID:vc3Dfl5Q
インスマウスを生成
0994デフォルトの名無しさん2016/04/26(火) 20:44:31.93ID:X2oLSlFm
>>990
Excelタグの記事が447でVBAタグの記事が279か。
多いと見るか少ないと見るか...
0995デフォルトの名無しさん2016/04/26(火) 20:56:51.89ID:9Pm0YF2l
>>989
うん、君はそれでいいと思うよ
別に個人の感覚を強要してるわけでもないしね
0996デフォルトの名無しさん2016/04/26(火) 21:03:49.53ID:X2oLSlFm
テンプレ改善
0997デフォルトの名無しさん2016/04/27(水) 04:13:46.08ID:Nk+oP5xR
次スレ

Excel VBA 質問スレ Part41
http://echo.2ch.net/test/read.cgi/tech/1461697906/
0998デフォルトの名無しさん2016/04/27(水) 10:31:26.05ID:tMN6lGzr
>>990
あー、462もストックされてる
この記事のMVCの下りが、何か良き物だと誤解されてなきゃいいが
0999デフォルトの名無しさん2016/04/27(水) 11:47:51.76ID:+kNKN17e
ここではVBAが致命的にダメとなってるな
http://qiita.com/onegear0o/items/2363394e5ba23170d878
1000デフォルトの名無しさん2016/04/27(水) 13:05:50.97ID:FDxhVMp1
Exit Sub
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 321日 20時間 47分 2秒
10021002Over 1000Thread
2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
http://premium.2ch.net/
http://pink-chan-store.myshopify.com/
レス数が1000を超えています。これ以上書き込みはできません。