Excel VBA 質問スレ Part55

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2018/07/22(日) 14:13:18.78ID:/fuF+goF
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK


※前スレ
Excel VBA 質問スレ Part54
https://mevius.5ch.net/test/read.cgi/tech/1527334657/
2018/08/05(日) 11:02:08.70ID:lCYlyBjK
>>219
関数名は普通の変数と同等には扱えないからRetを使うのが必須な場面はある。
だから別に悪手ではない
2018/08/05(日) 11:10:34.73ID:vw7t6kWc
>>221
= だと式と区別がつかないから
2018/08/05(日) 11:12:01.18ID:vw7t6kWc
>>224
> 関数名は普通の変数と同等には扱えないからRetを使うのが必須な場面はある。
そういう場合はそうすればいいだけ
そういう前提がない場合にまでそうする奴は単なるバカ
2018/08/05(日) 11:18:09.78ID:DQLB2G4w
>>219
バグの確率が上がる状況ってどんな時?具体例を上げてくれ。
>そもそも2.の対処ができるなら書き換える個所は1箇所になるからこんなアホな対処法は意味がない
2の対処によって関数名に代入するのを1回にしてるんだが。どういう意味?

>>223
エラー対処を組み込んでも特に違和感ないと思うのだけど、どういう時?

Function hoge() As Variant
Dim Ret As Variant
'-----
On Error GoTo err1
Ret = 1 + "a"
If True Then GoTo ExitSub
'-----
GoTo ExitSub
err1:
Debug.Print Err.Number & Err.Description
Resume Next
ExitSub:
hoge = Ret
End Function

そもそもこの書き方って、自然と起こりうるものでコーディングルールとして定めるか臨機応変に使うかって話だと思うのだけどどうなん。
2018/08/05(日) 11:31:30.01ID:7RpOjRbA
変数宣言強制にしてれば関数名変えた時、戻り値返すための関数名も変更しないとエラーになるんじゃないの?
2018/08/05(日) 11:42:23.57ID:VayD9W7b
>>227
ごめん、なにか勘違いしてた
別にややこしくなかったね
230デフォルトの名無しさん
垢版 |
2018/08/05(日) 12:01:55.81ID:jOOhioBF
>>226

Retを使うという方法について>>219
> 手間を増やしてバグの確率上げるとか最悪の対処法だな w
と言い出したことから出ている話だが、
「手間が増える」とか「バグの確率上げる」という主張自体に根拠が無いよね。
>>224に書いた理由によりRetを使う方法は皆が習熟してるわけだから。

だからあんたの言う
>そういう前提がない場合にまでそうする奴は単なるバカ
も根拠薄弱。
2018/08/05(日) 12:06:39.32ID:DQLB2G4w
>>228
関数名変えるだけなら、コンパイルエラー出るから問題ないよ。
ただあまりたくさん使ってると次々とコンパイルエラー出てイラっとするだけで・・・。
2018/08/05(日) 12:11:44.20ID:C8NdcnMU
>>227
> バグの確率が上がる状況ってどんな時?具体例を上げてくれ。
記述量が増えればバグは増える、常識
> 2の対処によって関数名に代入するのを1回にしてるんだが。どういう意味?
だからそれなら1.の対処の意味がない
無駄なGoto増えるだけ
>>228の言うように関数名の変更忘れてたらOption Explicitでその関数に入る時にエラーになる
2018/08/05(日) 12:13:45.38ID:C8NdcnMU
>>230
>> そういう前提がない場合にまでそうする奴は単なるバカ
> も根拠薄弱。
必要もないのにコード量増やす奴はバカ
って書かないとわからんの? w
2018/08/05(日) 12:22:01.77ID:C8NdcnMU
> ※コピペ直後に「完全に一一致」でプロシージャ内置換すれば良いのは分かっているが、そういう問題ではない。

> ただあまりたくさん使ってると次々とコンパイルエラー出てイラっとするだけで・・・。

わかってるけどやりたくない
でもいらつくとかちょっと病院に行った方がいいレベル
235デフォルトの名無しさん
垢版 |
2018/08/05(日) 12:32:44.13ID:jOOhioBF
>>233
最初の>>215の段階からRetが有効に使える場合のことしか書いてないよ

その前提を無視して>>219が変なこと言うから悪い
つまり>>219>>226>>233が悪い
2018/08/05(日) 12:39:05.42ID:DQLB2G4w
>>232
>記述量が増えればバグは増える、常識
そういう考え方もよく分かるよ。
だが途中で関数名代入を多様するのと、コーディングルールで途中でExitするというテンプレを定めるのとでは、バグの発生率は前者のほうが高いと自分は評価している。
実際この運用でうまく行ってるし意味がないなんてことはない。

そもそもは関数名代入が気持ち悪いと感じる原因と、自分がやってる対処法を上げて有用な異論がないか知りたかっただけだし。
237デフォルトの名無しさん
垢版 |
2018/08/05(日) 12:46:59.88ID:jOOhioBF
記述量が増えるったって Dim ret と 最後の代入の2行だけじゃん。
途中の 「関数名 = 〜 」 という代入の記述を減らせるんだったら大した害悪じゃない。
最初からそういう話をしているのにね。
238デフォルトの名無しさん
垢版 |
2018/08/05(日) 12:58:38.58ID:d6sOKofu
>>190
平均はできた、けど標準偏差はわからない
https://paiza.io/projects/rCXyBIojlQ87fN8Gkr2n5g
239デフォルトの名無しさん
垢版 |
2018/08/05(日) 13:00:05.97ID:d6sOKofu
>>238
ヒープ使って合計の少ないものに足してます
2018/08/05(日) 13:30:42.82ID:VayD9W7b
行き違いがあるんじゃない?
コーディングルールとして決められていれば、多少記述が増えてもそんなもん何の問題もない
コーディングルールがない状態でいきなり>>227みたいな記述が出てくれば、ボンクラは意味がわからずに戸惑うだろう
2018/08/05(日) 13:51:42.51ID:7Eiwzs5v
な?
たかが返り値を返すだけの話なのに
グローバルにするだのRetに一時保存するだのExit Sub禁止するだの
名前を変えるときは注意深く使ってるとこ全部変えるだの
謎のオレオレルールが一気に湧き出してきた
これが関数名に代入方式の弊害だよ

VBAに染まってない一般的なプログラマなら
「関数名に戻り値代入ってなんかキモくね?」「せやなぁなんでreturn文ないんやろねぇ」
こう一瞬で同意を得られるはずなんだがVBAワールドだとこうなってしまう
まるで異世界に迷い込んだような感覚
2018/08/05(日) 13:57:46.59ID:7RpOjRbA
VB.netもreturnなんだな
2018/08/05(日) 14:22:10.24ID:C8NdcnMU
>>235
> 最初の>>215の段階からRetが有効に使える場合のことしか書いてないよ
>>215が有効とか思ってるのはお前らだけ

>>236
> 実際この運用でうまく行ってるし意味がないなんてことはない。
お前らは勝手にやってればいい。

>>237
> 途中の 「関数名 = 〜 」 という代入の記述を減らせるんだったら大した害悪じゃない。
記述は減ってない
関数名を変更した時の変更量が減るだけ
しかも本人が書いてる通り
> ※コピペ直後に「完全に一一致」でプロシージャ内置換すれば良い
だけなのに、何故はそれはやりたくないらしい w
2018/08/05(日) 15:39:03.72ID:fib/Q9e8
そもそも、仮に何度も関数名?に代入したとしてもその関数が長く無ければ混乱することも無い。
長い関数はそもそもダメるわけで最初から混乱することは無い。

関数を100行程度にするってのは常識だろ。
2018/08/05(日) 16:14:10.59ID:7Eiwzs5v
100は長すぎだろ
2018/08/05(日) 16:31:24.96ID:OTeO2/4+
>>245
そうか?
Cプログラミング診断室の人が許容される限界は100行までと言ってたからそれに準じたまでだが。
それに、だったらお前さんは短い関数で混乱してたということ?
2018/08/05(日) 16:32:17.90ID:lCYlyBjK
書き間違えでしょwww
俺は最長でも60行くらいだ。

それはともかく、関数名は最終的な答えを代入するためのものであって、
途中の値なんか決して代入したくないよって理由じゃないの?
少なくとも俺はそうだ。
2018/08/05(日) 16:33:09.91ID:lCYlyBjK
書き間違えじゃないのかよ
2018/08/05(日) 16:39:11.36ID:OTeO2/4+
returnのある言語から入ってきたから違和感を感じるのかも知れないがreturnよりは自然だろ。

そもそも俺は関数名?に代入するということを習ったことが無い。
最初にFunctionプロシージャを見て全てを理解した。
自然に理解出来た。
2018/08/05(日) 16:53:49.71ID:DQLB2G4w
>>246,245
限界が100行なのであって、普段は50行とかに抑えるべきだと言いたかったんだと思う。
それを100行程度が常識だと勘違いしただけじゃないかな?
2018/08/05(日) 17:02:35.19ID:C8NdcnMU
> 関数を100行程度にするってのは常識だろ。
って言うのを限界と言うのは苦しいだろ w
2018/08/05(日) 17:40:35.93ID:FkgLp/sd
ちょっと待ってほしい
他の言語なら50行で書ける関数もVBAだと100行に膨れ上がるから仕方ないのではないだろうか
2018/08/05(日) 18:38:48.57ID:FpUB4uXn
Cプログラミング診断室の人がVBAに言及するのか?
VBAを使ってはいけない原理主義者の人は相変わらずこじつけがスゴイなw
2018/08/05(日) 19:19:38.85ID:OTeO2/4+
なんじゃそりゃ。
どんな言語でも短くすべきなのは常識だろ。

50行だろうが100行だろうが関数名?代入しても混乱しないだろ。
2018/08/05(日) 19:21:07.38ID:OTeO2/4+
>>251
何だ?
10行じゃマズい何かがあるとでも思ってるのか?

それはさすがにプログラミング知らなすぎ。
256デフォルトの名無しさん
垢版 |
2018/08/05(日) 19:23:39.26ID:NFAVCAdx
手続き型だとそこまで細分化してもかえってわかりにくいけどな
2018/08/05(日) 19:31:00.06ID:C8NdcnMU
>>255
プログラミングの前に日本語の勉強しなよ…
258デフォルトの名無しさん
垢版 |
2018/08/05(日) 20:48:23.33ID:xg7vFkon
質問です
他のBookから元bookの"テーブル1"を参照するになやんで
Range(myBook.Name & "!テーブル1")
としましたがもうちょっといい方法はないのでしょうか

Sub 元WBのテーブル範囲を名前から参照したい()
Dim myBook As Workbook
Set myBook = ActiveWorkbook
Debug.Print Range("テーブル1").Address
'
Dim TempWB As Workbook
Set TempWB = Workbooks.Add

Debug.Print Range(myBook.Name & "!テーブル1").Address  ’これ

End Sub
2018/08/05(日) 20:48:50.34ID:VayD9W7b
他の言語ならともかくvbaなんてスクリプトなんだから多少行が増えても普通でしょ
2018/08/05(日) 21:46:30.28ID:x6CWYB22
Workbook.worksheet.listobject("テーブル名")とか
2018/08/06(月) 18:40:21.72ID:srsn67Ss
基本vbaは良くも悪くもやっつけ仕事片付ける用途だからなぁ
いっそ他人が読んだりメンテしたりすることを全く考慮しないのも手っていう記事見たことがあるけど
極論とはいえ、適材適所って意味ではそれも手だなとおもた
2018/08/06(月) 21:02:33.88ID:nuq1zyN5
vbaは使い捨てのマクロとかしょっちゅうだしね
他の言語とはかなり正確が異なる
2018/08/06(月) 21:57:34.50ID:DlUo5dI6
・誰かが質問をする
 ↓
・とりあえず誰かが質問にダメ出しをする
 ↓
・そのうち誰かが回答する
 ↓
・俺の方が上と違う人が別の回答をする
 ↓
・どちらの回答も的外れなためにダメ出し合戦が始まる
 ↓
・不利になってきた方がそもそもVBA自体が糞と論点をそらす
 ↓
・とことん荒れる
 ↓
・各自「やっぱり俺の知識が至上だったな」と思い矛を収める


・質問者「で、俺の質問は…」
2018/08/06(月) 22:05:07.55ID:HWRT0k/I
・変なキチガイが唐突に持論を展開する
2018/08/06(月) 22:09:50.77ID:1zJm1iav
>>261
自分しか使わない書き捨てツールと社内に配布して他の人に使ってもらうツールじゃ組み方は違うわな
別にVBAに限った話じゃないけど
2018/08/07(火) 01:29:58.65ID:8F5FPkZy
質問に対してこんな感じでいいんじゃね〜って教えるのと、
仕事で残すコードでも組み方は全然違ったりする
2018/08/07(火) 12:27:46.44ID:o04k1oyM
変数を宣言したら直ぐに初期化するように、と解説サイトにはよく書かれているのですが、
ループカウンタも初期化する必要があるのでしょうか
2018/08/07(火) 12:50:25.25ID:Hr4AgTw6
vbaレベルならいらないんじゃねて思うけどね
グローバルとかオブジェクト変数はやるけどそれ以外はして無いわ
2018/08/07(火) 12:58:23.99ID:zpIkHTy8
>>267
VBAの変数には既定値というのがちゃんと定義されているので、初期化は必ずしも必要ない
VBAの仕様を知らない人にコードを見せる可能性があるなら初期化してもいいけど、
俺個人の考えでは、宣言と初期値の代入は分けて書くべき

質問の文脈から判断して、ループカウンタとはFor文で使うカウンタ変数のことだろうけど、これは初期化しなくていい
しかし「ループカウンタ」はもっと広い概念を表すので、初期化が必要なケースも多々存在する
2018/08/07(火) 15:43:33.88ID:JsLgKgln
>>267
VBAではそもそも初期化できない。
2018/08/07(火) 18:35:06.29ID:o04k1oyM
ありがとうございます。
特に初期値は設定せずにそのまま使うことにします。

ところで、VBAを触り始めてから他のプログラミング言語にも興味が出てきました。
使い勝手や習得時間を省みて、VBAを習得している者にとって一番コスパがいい言語は何でしょうか。
やはりVB.NETでしょうか。

スレチでしたら無視してください。
2018/08/07(火) 19:02:13.91ID:kevEyuIc
なんかの言語をひとつ習得できる人なら何でもいいよ
言語別の利用者数、給与、分野、いろいろ調べてみ
273デフォルトの名無しさん
垢版 |
2018/08/07(火) 20:12:05.34ID:BqQIYASV
>>271言語よりIDEの開発環境が充実してる方が覚えやすい
VisualStudioがおススメ
C#の方が圧倒的にサンプルも多いし解説Webページも多いので良いのでは
274デフォルトの名無しさん
垢版 |
2018/08/07(火) 20:40:19.29ID:50B7Hyqk
>>271
VB.NETとC#のコードを見比べて自分が分かりやすいと思った方かな
または、こっちの方が好きだと思える方
275デフォルトの名無しさん
垢版 |
2018/08/07(火) 20:44:08.52ID:BqQIYASV
それにC#ならAndroidアプリも作れるしiOSアプリも作れる
2018/08/07(火) 20:56:18.42ID:i+W8MTkr
>>271
日常的な小手先の処理したいならPythonやNode.jsみたいなスクリプト言語
がっつりアプリ作りたいなら最近流行りのGoやSwiftやkotlin
2018/08/07(火) 21:13:08.98ID:zpIkHTy8
20代までならC#ぐらいは覚えておいたら転職で役に立つかも知れない
278デフォルトの名無しさん
垢版 |
2018/08/07(火) 21:33:21.73ID:eM6c9wNK
仕事で社内サイトの検索結果を数十ページ出して
その中から必要なデータをExcelに貼り付けるVBAをCreateObject(" InternetExplorer.Application"を使って作ったのだけど
社内ネットワークが重すぎて1ページあたり1分以上、つまり20ページあると20分以上というものすごい時間がかかります。
これ各ページの平行作業かなにかで、どんなにページ数があっても1分強くらいですます方法はないのですか?
279デフォルトの名無しさん
垢版 |
2018/08/07(火) 21:44:50.55ID:eM6c9wNK
ちなみに今は
1ページ開いて、そのページを完全に読み取ったら(●ここに時間がかかっている。30秒〜60秒くらいか)、IEオブジェクトを利用してGetIdByIDなどでデータを読み込み、そのページを閉じ、
それをページ数だけ繰り返しています。
2018/08/07(火) 21:58:48.99ID:zEgIKMkK
無いです
シス管に糞サイトが遅いぞって文句言いましょう
281デフォルトの名無しさん
垢版 |
2018/08/07(火) 22:03:53.33ID:eM6c9wNK
いや、あるのでは?
他言語ではマルチスレッドというやつかな?
2018/08/07(火) 22:07:46.26ID:zpIkHTy8
IEオブジェクトを配列にしてWEBページの同時読み込みに挑戦してみたことあるけど、なぜかVBAではうまくいかなかった
これはいまだに理由がよくわからん
283デフォルトの名無しさん
垢版 |
2018/08/07(火) 22:52:34.26ID:Ylf+FX0e
VBScriptで処理を書いて
マルチプロセスでやってみるのはどうだろう

ネットワークが遅いのが原因だとすると
変わらないかもしれないけど

2/3 ~ 1/2 くらいは期待できるんじゃないかな

社内DBに直結してデータぶっこ抜けないかな
284デフォルトの名無しさん
垢版 |
2018/08/07(火) 23:01:00.74ID:WUtnzCvr
>>246
マーティン・ファウラーはメソッド平均6行ぐらいだってさ
俺もC#やJavaを使うときはだいたいそれと同じぐらいに自然と落ち着く
VBAは冗長で書きにくいから10行〜20行ぐらいになっても我慢するけどね(どうせすぐ破棄するってのもあるが)

100行ってのはおそらくだが速度最適化のために可読性保守性を無視したコードならそれぐらいまでOKってことではないかな
C言語は何よりもまず速度みたいなところがあるからね
285デフォルトの名無しさん
垢版 |
2018/08/07(火) 23:10:51.13ID:50B7Hyqk
>>284
俺もC#では平均だと6,7行くらいだな
Javaも最近やってないがそんくらいだったと思う
2018/08/07(火) 23:14:03.05ID:zEgIKMkK
>>281
エスパーすると社内サイトの検索処理がダメダメで異様に時間食ってると思うのでクライアントでいくら頑張っても無理
287デフォルトの名無しさん
垢版 |
2018/08/07(火) 23:19:30.40ID:EHUuk9/6
ネットワーク越しの処理ってVBA異常に遅かった記憶があるなぁ
2018/08/07(火) 23:44:33.38ID:+TFKzcWv
6,7行とか本当?
明らかに保守よりも作成する頻度の方が高いから、結構雑になる
下はディレクトリの一覧ファイル作るマクロ。確か5.6回しか使っていない
※数万ファイルのファイル名を一覧にしたかったらしい

Sub main()
Application.EnableEvents = False
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
strPath = InputBox("調べたいフォルダを絶対パスで入力してください。", "ファイル一覧", "c:\")
Cells(3, 2) = " "
Range("A3", ActiveCell.SpecialCells(xlLastCell)).ClearContents
Range("A3").Select
i = 3
FileDisp strPath, i
Application.EnableEvents = True
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
2018/08/07(火) 23:44:40.74ID:+TFKzcWv
Private Sub FileDisp(strPath, i)
Set objFs = CreateObject("Scripting.FileSystemObject")
Set objFld = objFs.GetFolder(strPath)
'folder
Cells(i, 2) = objFs.GetBaseName(objFld.Name)
Cells(i, 3) = objFld.ParentFolder.Path
Cells(i, 4) = Int(objFld.Size / 1024)
Cells(i, 5) = "folder"
Cells(i, 6) = objFld.DateCreated
Cells(i, 7) = objFld.DateLastAccessed
Cells(i, 8) = objFld.DateLastModified
i = i + 1

For Each objFl In objFld.Files
Cells(i, 2) = objFs.GetBaseName(objFl.Path)
Cells(i, 3) = objFl.ParentFolder.Path
Cells(i, 4) = Int(objFl.Size / 1024)
Cells(i, 5) = objFl.Type
Cells(i, 6) = objFl.DateCreated
Cells(i, 7) = objFl.DateLastAccessed
Cells(i, 8) = objFl.DateLastModified
i = i + 1
Next
For Each objSub In objFld.SubFolders
FileDisp objSub.Path, i
Next
End Sub
2018/08/07(火) 23:46:49.50ID:+TFKzcWv
この辺は配列に入れようかと思ったけどもういいやってなった
使い捨てじゃなければもう少し綺麗にまとめたいんだけど、
そんな暇は、ない

Cells(i, 2) = objFs.GetBaseName(objFld.Name)
Cells(i, 3) = objFld.ParentFolder.Path
Cells(i, 4) = ・・・
2018/08/08(水) 00:43:07.64ID:vvQmCMQJ
扱うプログラミング言語によるエンジニアの年収差「Go」が1位に 2018年8月7日
 ・スタンバイが「プログラミング言語別年収ランキング2018」を発表した
 ・1位に輝いたのは、さまざまな分野で利用されている「Go」
 ・年収中央値は600万円で、10位の「C言語」と比べて75万円高いという
 http://image.news.livedoor.com/newsimage/stf/2/e/2e6a5_1524_19def02164a84861254ba51be419f53e.jpeg
http://news.livedoor.com/article/detail/15125851/

Goってなんやねん…
って言うてたらアカンのんか…
2018/08/08(水) 02:42:12.63ID:bsMqBICX
ポケモンだろ
2018/08/08(水) 03:02:57.55ID:vtZ7Dair
>>282
複数のIE インスタンスがあっても、1つしか実体化されていないとか?
それか、それらが共有化されているとか?

すべてのインスタンスを、別々に実体化したか?
294デフォルトの名無しさん
垢版 |
2018/08/08(水) 05:59:42.24ID:1w8vuJFc
>>293
インスタンスとは実体化されてるそのもののことだと思うけど。どういうこと?
295デフォルトの名無しさん
垢版 |
2018/08/08(水) 06:57:52.22ID:QCGkbsMF
カップヌードルにお湯を入れます、これがインスタンス化です
カップヌードルにお湯を注いでいたとしても、それが同じカップヌードル
だったらできあがるカップヌードルは1つだけですよね、そういうことです
2018/08/08(水) 08:10:17.80ID:Ot2gBzQj
>>279
InternetExplorer.Applicationは遅い。
ページにもよるけどMSXML2.XMLhttpとかhtmlflle使った方が全然速い。
ページにもよるのは遷移後にJavaScriptなどでページ内容が変わる場合等は対応出来ない場合があるから。
297デフォルトの名無しさん
垢版 |
2018/08/08(水) 09:27:23.26ID:wHDW8dSe
Webアプリを作って取得したデータをエクセルで読み込めば早いのでは?
2018/08/08(水) 11:19:22.65ID:wMtMcgI8
社内サイトなら>>283の言うとおりDBを直接アクセスするのが正解なんだが、
「そういう想定で作ってません」てパターンもありそう。
2018/08/08(水) 12:44:02.26ID:fnpjJPlP
一般社員用クライアント - WEBサーバ - DBサーバ - 管理者用クライアント
WEB経由じゃないと、DBには直接アクセスできないってケースもよくある
2018/08/08(水) 13:19:28.34ID:hYvxbMfU
以前データをCSVに書き出す社内Webがクソすぎて
解析したらページ内のパラメータjoinしてSQL文作ってPOSTで投げて取得してただけだったので
XmlHTTPで直接取るようにしたことあるわ
2018/08/08(水) 19:07:51.20ID:wMtMcgI8
>>299
つまらんことするよなあ
302デフォルトの名無しさん
垢版 |
2018/08/08(水) 19:14:31.05ID:woeaWRrx
DBに無制限で直接アクセスってヤバくね?
303デフォルトの名無しさん
垢版 |
2018/08/08(水) 20:01:33.99ID:5XCxVkf/
無制限のアクセスはやばいけど

このテーブルだけ許可しますとか
SELECTだけ許可しますとか
このIPからだけ許可しますとか
できるっしょ
2018/08/08(水) 21:58:07.18ID:F+QXSseb
社内DB全開放して自由にクエリ投げれるようにしたら事務の人間半分くらいいらなくなりそう
というかVBAなんかよりSQL勉強したほうが手っ取り早く幸せになれる人多いんじゃないかと前々から思ってる
2018/08/08(水) 22:05:47.67ID:XDTEOjvF
webで良いからurlがapiとして完成してれば何も言うことは無い
2018/08/08(水) 22:22:03.67ID:+Hip1o5f
>>304
報酬次第だね
事務のコストを圧縮するごとにシステム部の報酬が上がるなら、
システムは本気で頑張り続けるだろうね

現実的にはなぜかそれが行われないので、いつまで経っても事務が事務事務している
2018/08/08(水) 22:23:00.50ID:+Hip1o5f
ただ、下手にアクセスで作ると自分以外触れなくなって何かあったら即死する
中小企業なら、エクセル+エクセルvbaが最強だと思っている
308デフォルトの名無しさん
垢版 |
2018/08/08(水) 22:49:37.58ID:jNIJWXgx
>>307
アクセス専門業者を呼べばいいだけじゃん
2018/08/08(水) 23:28:48.50ID:+Hip1o5f
>>308
死ぬほど高い
2018/08/09(木) 00:59:24.50ID:JCoC1JfU
1から開発で今更Accessも無いだろう。データベースシステムでスタンドアロンのシングルユーザーというのがそもそも想定しにくい
2018/08/09(木) 01:02:04.53ID:cF5SxCfL
当たり前のことなんだけど、これまでなかなか上手いたとえが思い付かなかったが…

Manabu Ueno @manabuueno 16:46 - 2018年8月1日
 ユーザーの要求をそのまま機能にすると役立たない物になってしまいます。
 デザイナーはユーザーの要求を抽象化して本来的な原理を見つける必要があるのです。
 例えば「直進したい」「左折したい」「右折したい」という要求に対して、3つのボタンではなく、
 1つのハンドルを提案できなければいけません。
 https://pbs.twimg.com/media/Djf5rTuUYAEI9sw.jpg
https://twitter.com/manabuueno/status/1024562075526254592

この例えは現場の人と話すときにも使えそうだな
https://twitter.com/5chan_nel (5ch newer account)
2018/08/09(木) 06:36:39.58ID:Uz7F5Yyf
真の欲求って奴だな
これを知らないとデスマーチからいつまで経っても抜け出せなし
2018/08/09(木) 07:59:59.62ID:TQ/3uoG6
ソフトごとに違う使い方やI/F覚えるよりSQL覚えた方が早いしずっと役立つんじゃね?
314デフォルトの名無しさん
垢版 |
2018/08/09(木) 08:16:05.94ID:XQnUSO4S
>>313
なるほど!
じゃあ社内DBに直接アクセスしたいのですが、その方法はどうしますか?
HTMLのフォームに入力してSubmitすれば次のページでいろんなデータが見れるようになっているのですが
そのHTMLフォームがあるページのHTMLソースを見ればその中のどこかに社内DBのアドレスやログイン方法みたいなのが書いてあるのですか?
315デフォルトの名無しさん
垢版 |
2018/08/09(木) 08:22:15.68ID:0WK0pW+2
>>314
そんなバカな
HTMLから投げるのはサーバーサイド処理のスクリプト
ASPだったりCGIやPHP
ページのソースに書いてあったら怖いだろ
2018/08/09(木) 08:24:20.68ID:nqTz3IyX
>>314
お前には無理だから諦めろ
2018/08/09(木) 08:38:23.31ID:sKYMgflt
そういやExcel VBAでもADO使えばSQL使えるみたいだけど、どれくらい制限あるの?
2018/08/09(木) 09:09:17.52ID:BeIAvoie
???
そもそも何に接続したいの?
SQLといってもそれによるでしょ。

接続できるアカウント用意してもらって、
接続用ODBCドライバ入れて良いかどうかとか、情シスに聞いてみれば?
2018/08/09(木) 10:14:25.51ID:yeHg7T00
>>317
機能に制限はない
運用側で接続やアクセスを制限するのが普通のやり方
2018/08/09(木) 12:17:46.94ID:TQ/3uoG6
>>317
SELECTとかINSERTとかのSQLを実行する分にはvbaだからどうこうっていう制約は何もないよ。
2018/08/09(木) 18:30:51.09ID:sKYMgflt
>>319
>>320
え、そうなんだ
じゃあ単にシート内を検索するときもDictionary使わずに、ADOで接続してSQL使った方がシンプルで応用がききそうだね
もっともExcelでSQLの命令書くのが簡単なのなのかはわからないけれども
322デフォルトの名無しさん
垢版 |
2018/08/09(木) 18:39:29.03ID:XQnUSO4S
ところで新バージョンExcelで「游ゴシック」がうざくてしかたがない。
これ地獄の底へ抹消する方法ない?

しかも「游」ってなんだ?「遊園地」の「遊」でもないし。
2018/08/09(木) 18:47:08.22ID:JCoC1JfU
Web制作では游ゴシは福音なんだがな...嫌いならフォントだけアンインストールすりゃいんじゃね?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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