X



Excel VBA 質問スレ Part51
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん (スププ Sd4a-O827)
垢版 |
2017/11/08(水) 11:26:30.13ID:+KUB1/9hd

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

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

※関連スレ
VBAなんでも質問スレ Part2
http://mevius.2ch.net/test/read.cgi/tech/1432173164/
Access VBA 質問スレ Part1
http://mevius.2ch.net/test/read.cgi/tech/1328536426/
Excel総合相談所 126
https://mevius.2ch.net/test/read.cgi/bsoft/1496487719/

※前スレ
Excel VBA 質問スレ Part50
http://mevius.2ch.net/test/read.cgi/tech/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
0889デフォルトの名無しさん
垢版 |
2018/01/13(土) 17:58:56.84
>>885
>セルに入力した選手コードを選手名に置換するような動きをさせたい

セルに選手コードを入力して、Enterを押した途端に選手名に置き換わるような動きをさせたいんだな?そうなんだな?
0890デフォルトの名無しさん (アークセー Sxbd-IRwv)
垢版 |
2018/01/13(土) 18:00:41.47ID:gLbKwyK9x
>>887
検索置換のダイアログでシート内の選手コードを一括変換する、みたいな手作業の業務手順をそのままマクロ化しようとしているのかもしれないし、そういう場合はそもそもシートの設計や業務手順に問題がある場合が多い。
最初にVLOOKUP使えと指摘したあんたの感覚は基本的には正しいと思うぞ。
0891デフォルトの名無しさん (ワッチョイ 5e9f-QpsD)
垢版 |
2018/01/13(土) 18:06:27.84ID:fyAvIt7m0
>>885
単発ならワークシート関数でやった方が簡単
VLOOKUPで変換したのを用意しといてそれをごそっと上書きする

何回もやるなら、上記をマクロにする
このくらいならマクロの記録でもいけそう

全部VBA上でやる方法もあるけどビギナーには大変でしょう
こんな感じでいいんじゃなかろうか

Dim i
i = スタートする行
Do While Not Worksheets(1).Cells(i, 1) = ""
Worksheets(1).Cells(i, 1) = WorksheetFunction.VLookup _
(Worksheets(1).Cells(i, 1), Worksheets(2).Range("名簿範囲"), 2, 0)
i = i + 1
Loop

シートのインデックスとかは書き換えてね
意味不明ならマクロ記録かさらなる修行をオススメする
0892デフォルトの名無しさん (アークセー Sxbd-IRwv)
垢版 |
2018/01/13(土) 18:07:34.63ID:gLbKwyK9x
>>889
VBAに慣れてる人ならセル値の置換と聞いただけでワークシート更新イベントを使いたいのかなって思いがちだよな
俺も最初はそう思ったわ
でも質問者の質問内容を推測抜きで素直に読むとそうとは限らないんだよな
0893デフォルトの名無しさん (ワッチョイ f1f7-GMp/)
垢版 |
2018/01/13(土) 18:19:24.76ID:zzyV/8sb0
>>888
トーナメントの結果を入力するようになっているのですが既に報告用ワークシートはあるのですが入力件数が多くなりすぎて最終的にはバーコードによる入力を試みようとしています
また、その報告用ワークシートは書式が決まっており並べ替えエラーチェックのマクロが既にあるので行を入れたりして関数をいれる対応ができないという状態です
>>889
入力後にマクロ実行用のボタンを押して置換するような想定でした
エンターを押した瞬間変わるものでも大丈夫です
0894デフォルトの名無しさん (ワッチョイ f1f7-GMp/)
垢版 |
2018/01/13(土) 18:35:21.45ID:zzyV/8sb0
>>887
>>891
ありがとうございます
家に帰り次第試してみます
>>890
今まではワークシート内から対戦選手の名前を探してきてコピーアンドペーストで対応していたのですが参加者が年々増えてきて(今年の見込みは約千人位)追い付かなくなってきたために速度向上を目的としています
0895858 (ワッチョイ 1188-/4a5)
垢版 |
2018/01/13(土) 18:44:45.15ID:eGapce6A0
>>884
VBAに記述のあるWorksheets("Sheet1") の箇所を、
並べて比較でペアにしているシートに特定する方法が思いつかないのです。
0896デフォルトの名無しさん (アウアウカー Sa55-sebt)
垢版 |
2018/01/13(土) 19:03:27.44ID:rZTV+Qsta
>>895
ファイル名とかシート名がランダムでないなら
固定値じゃないの?
どんなファイル名か分からない、シート名か分からないってなら都度入力するしかないな。
データ形式で特定することもできるけど、
無駄な作業にしか思えない。
0897デフォルトの名無しさん (アークセー Sxbd-IRwv)
垢版 |
2018/01/13(土) 19:18:42.64ID:gLbKwyK9x
>>893
こんな感じならどうかな
以下は、実行すると報告用シート内に含まれる選手コード全てを一気に置換する
複数の選手コードを含む場合も一発で置換できるはず

名簿にはコードの欄が空白の行がなく、名簿シートのA2セル以下に選手コードが入力されているものと仮定してる(A1は表見出し)
セル値の一部が選手コードと一致する場合も置換されてしまうので、コードのみが入力されているセルの値だけを確実に置換したい場合、Replaceメソッドの引数のLookAt:=xlPart をLookAt:=xlWholeに変更してくれ



Sub ReplaceCode

Dim sh_list As WorkSheet '選手名簿シート
Dim sh_report As WorkSheet '報告用シート
Dim i As Long

Set sh_list = WorkSheets("選手名簿シート")
Set sh_report = WorkSheets("報告用シート")
For i = 2 To sh_list.Range("A2").End("xlDown").Row
sh_report.Cells.Replace What:=sh_list.Cells(i, 1).Value, Replacement:=sh_list.Cells(i, 2).Value, LookAt:=xlPart
Next i

End Sub
0898858 (ワッチョイ 1188-/4a5)
垢版 |
2018/01/13(土) 19:32:04.47ID:eGapce6A0
>>896
ファイルのフォーマットが複数あるので、
事前にファイル名とシート名を規定できないのです。
なので、せめてペアにしたファイル同士が特定できれば、
ファイルとシートを選択する手間が省けると思ったのですが・・・

3つ以上開けなくなるけど、workbooksからマクロブックを除外した先頭2つを比較する方法で考えてみます。
0900デフォルトの名無しさん (ワッチョイ b5b3-6BZu)
垢版 |
2018/01/13(土) 23:03:28.12ID:aJN0Dby50
エクセル2010でCSVファイルを開いた場合、
UTF8やshiftjisを自動で判定して表示してくれますが、
この時に判定された文字コードを取得する方法はありますか。

用途は、外部データの取り込みでCSVを開きなおすための文字コードの特定です。
0901デフォルトの名無しさん (ワッチョイ 8903-YNmt)
垢版 |
2018/01/13(土) 23:14:29.83ID:odSwvUdp0
>>900
application.nkf
0904デフォルトの名無しさん (ワッチョイ f1f7-GMp/)
垢版 |
2018/01/15(月) 01:08:16.65ID:Zqan8uZj0
>>897
実行時エラー13
型が一致しませんとなっていて
For~の行でエラーを出していて止まるみたいです
あと報告シートが選手の強さ別に複数に分かれているのですが今選手コードの入力したシート(つまりいま開いているマクロ実行用のボタンを押したシート)を処理したいという場合どうするとよいのか教えていただけると助かります
0905897 (アークセー Sxbd-IRwv)
垢版 |
2018/01/15(月) 01:48:08.96ID:ubg4QImpx
>>904
エラーの出たコードを転載して見せてもらえませんか?こちらの環境ではうまく動いているんですが、私がコードを転載したときにミスをしたかもしれないので

それから、コードはボタンマクロ(ボタン名_Clickのような名前のプロシージャ)として各シートのシートモジュールに書いているんでしょうか?
0906デフォルトの名無しさん (ワッチョイ f1f7-lXUw)
垢版 |
2018/01/15(月) 11:28:57.27ID:thpu0oBS0
>>905
Sub ReplaceCode()

Dim sh_list As Worksheet '選手名簿シート
Dim sh_report As Worksheet '報告用シート
Dim i As Long

Set sh_list = Worksheets("選手名簿")
Set sh_report = Worksheets("対戦結果表_A級")
For i = 2 To sh_list.Range("A2").End("xlDown").Row
sh_report.Cells.Replace What:=sh_list.Cells(i, 1).Value, Replacement:=sh_list.Cells(i, 2).Value, LookAt:=xlPart
Next i

End Sub

シート作成用のコードが既にあるのですがその中のコードを流用して各シートに実行用のボタンを置く計画でした
ActiveSheet.Buttons.Add(2, 1.5, 125, 18.75).Select
Selection.OnAction = "CSV_SAVE"
Selection.Characters.Text = Worksheets(2).Cells(1, 1).Text & "級のCSVファイル作成"
With Selection.Characters(Start:=1, Length:=15).Font
.Name = "MS Pゴシック"
.FontStyle = "標準"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
End With
これのCSV_SAVEをReplaceCodeにしてボタンの名前と場所をかえるつもりでしたがあまりよくない方法なのでしょうか
必要であれば既にあるコードを出しますので教えてください
0908897 (アークセー Sxbd-IRwv)
垢版 |
2018/01/15(月) 23:02:33.00ID:JvjYqsKWx
>>906
申し訳ない、Forの行でEnd("xlDown")となってるの、自分の転記ミスでした
エラーの原因もこれでしょう
二重引用符なしでEnd(xlDown)と書き直して動かしてみてください
0909デフォルトの名無しさん (スッップ Sd0a-YX4c)
垢版 |
2018/01/16(火) 12:17:16.43ID:SelV7zwId
質問です。

ソルバーで普通は目的セルをrangeなどで指定しますが、シートのセルにアクセスせず、vba内の変数を直接ソルバーにかけてvba内だけで完結したいのですが、方法あるでしょうか?
0910デフォルトの名無しさん (ワッチョイ f1f7-GMp/)
垢版 |
2018/01/17(水) 02:18:24.01ID:x8yvrTsd0
>>908
うまくいきました
ありがとうごさいます
0913デフォルトの名無しさん (ワッチョイ c51a-3Ttg)
垢版 |
2018/01/20(土) 13:28:17.12ID:uuergXrf0
社内に部品表があって、重複している名前を省いて部品種類一覧の表を作ろうと思ってます。
・ネジM5
・ネジM5
・ナットM5
・ナットM5

・ネジM5
・ナットM5
というイメージです。
自分なりに下記のマクロを組んでみました。

Dim row As Long, col As Long, D As Range

col = 1
row = 1

Do Until Cells(row, col) = ""
If Not Cells(row, col) = Cells(row + 1, col) Then

If D Is Nothing Then
Set D = Cells(row, col)
Else
Set D = Union(D, Cells(row, col))
End If

End If
row = row + 1
Loop

この後レンジDをコピペするマクロです。
部品の種類が100とか200なら動いてくれますが、本来20,000件超の部品の種類があり、こちらを処理するとフリーズします。
デバックのウィンドウはユニオンのところを指定してきてるんですが、ユニオンにはまとめられる量の限界などがあるのでしょうか?
0916デフォルトの名無しさん (ワッチョイ ddc3-9sdm)
垢版 |
2018/01/20(土) 15:03:19.74ID:Fb/tMd6M0
>>913
Excel VBAでやってもいいけど、RANGEオブジェクトに溜め込むやり方よりは、素直に別シートに値をコピー、さらにそれを検索して別の値が出てきたら別シートにコピーでいいんじゃないのか?

そもそもExcelのフィルタ関連の機能でもできるからVBAを使う理由がわからない。
0918デフォルトの名無しさん (ワッチョイ db7f-Ye64)
垢版 |
2018/01/20(土) 17:40:00.19ID:91x3kJT10
DBMSがコンソールなんかに返した結果を
Excelセルに上手く貼り付ける方法ってある?
0920デフォルトの名無しさん (ワッチョイ 1d03-Qz07)
垢版 |
2018/01/20(土) 20:44:55.78ID:Y9eKqT4m0
多くは語らんけどある意味エスパーと言っておこうw
0921デフォルトの名無しさん (ワッチョイ db9f-GP+B)
垢版 |
2018/01/21(日) 13:18:30.88ID:+2jqUeqC0
>>913
ADOなら一瞬で終わる
いろいろ突っ込まれているように、別の方法のが簡単だと思うけど
シート名やら列名は読みかえてね

Dim adocon As Object, adors As Object
Set adocon = CreateObject("ADODB.Connection")
Set adors = CreateObject("ADODB.Recordset")

With adocon
.Provider = "Microsoft.ACE.OLEDB.12.0"
.Properties("Extended Properties") = "Excel 12.0"
.Open ThisWorkbook.Path & "\" & ThisWorkbook.Name
End With

Set adors = adocon.Execute("SELECT DISTINCT 部品名 FROM [部品表$]")
Worksheets("部品種類一覧").Range("a1").CopyFromRecordset adors
adocon.Close
0925デフォルトの名無しさん (ワッチョイ 1d03-Qz07)
垢版 |
2018/01/21(日) 18:40:31.69ID:nVuQLEta0
ここ初心者スレかと思ってスレタイ見なおしてしまったわw
オレ以外初心者しかおらんやんw
0928デフォルトの名無しさん (ワッチョイ db9f-GP+B)
垢版 |
2018/01/21(日) 20:07:47.89ID:+2jqUeqC0
>>927
リストにあるかないかはわかるみたい
これなら配列に突っ込んで総当たりしていくのと変わらなそう
読みやすくはなるけど

Dim partsList As Object
Set partsList = CreateObject("System.Collections.ArrayList")

Dim partsData
Set partsData = Range("データの列")

Dim parts
For Each parts In partsData
 If Not partsList.Contains(parts.Value) Then
  partsList.Add parts.Value
 End If
Next

出力処理省略
0931デフォルトの名無しさん (ワッチョイ 1d03-Qz07)
垢版 |
2018/01/21(日) 21:12:55.02ID:nVuQLEta0
>>930
とりま、なんでいきなりそれを言いだしたのかよく分からんが
遅いのはお前のプログラムが下手糞なだけ

脈絡のない下手糞自慢ごくろうさん
0932デフォルトの名無しさん (ワッチョイ 0b80-H9dj)
垢版 |
2018/01/21(日) 21:38:18.50ID:Ycn/1JW20
require 'set'
File.readlines("ファイル名").to_set.map { |item| puts item }

Ruby の集合を使うと、以下のような行区切りのファイルを、








以下のような結果にできる。
ただし、集合にはデフォルトで、順番は無いので、
順番が必要なら、お好みの基準でソートする



0936デフォルトの名無しさん (スプッッ Sd13-f5OR)
垢版 |
2018/01/21(日) 23:23:35.81ID:ppfN03med
単純に2万個のセルをUnionするだけで1時間かかる

Sub aaa()
 Debug.Print Time
 Dim u As Range
 Set u = Cells(1, 1)
 For r = 3 To 40000 Step 2
  Set u = Union(u, Cells(r, 1))
 Next
 Debug.Print Time
End Sub
0939デフォルトの名無しさん (ワッチョイ 0b80-H9dj)
垢版 |
2018/01/22(月) 01:20:01.78ID:pYe1Cwj70
そんなに時間が掛かるのなら、一旦データをエクスポートして、
データをテキスト処理してから、インポートして戻せば?

たかが、2万個のデータで、1時間は現実的ではない

そんなに時間が掛かっても、どうしても、VBA でやりたいのか?
0940デフォルトの名無しさん (ワッチョイ 0bfa-weOF)
垢版 |
2018/01/22(月) 01:43:29.00ID:zmIcszTc0
あくまでUnionを使った場合であって高速に処理する方法はいくらでもあるからなぁ。
それに仕事でVBA使う環境だと他社との協調も考えなきゃいけないからRubyインストールする方がよっぽど非現実的だし。

まぁ、たぶんおちょくってるつもりなんだろうけど、そもそもVBA以外の環境がないって前提のスレだから、
Rubyマンの煽りが煽りになっていないっていう・・・。
0942デフォルトの名無しさん (ワッチョイ 3deb-Qbx4)
垢版 |
2018/01/22(月) 04:38:17.99ID:AE7SVx7N0
>>940
> そもそもVBA以外の環境がないって前提のスレだから
そんな前提で質問に来る人もいるだろうけど、
「最適解」を求めている人が、とりあえずVBAだとどうなるか、と思って質問する場合もあるでしょ

だから、質問者が「全体にVBA以外はダメ」って制限をかけていない限りは、
上でも、ACCESSを進めている人もいたけど、実用面から考えた回答も質問者の利益になると思うんだけど
(質問者がそう思っていても、何も知らないからそう思ってるってパターンすらあり得るかな)
0943デフォルトの名無しさん (ワッチョイ 0bfa-weOF)
垢版 |
2018/01/22(月) 05:56:27.49ID:zmIcszTc0
>>942
Excel VBA質問スレでの「実用面」は、一般的な企業向けWindows PC(Office製品入り)で出来る事に制限されると思うけど。
それに質問者が明言した事以外は「出来ない」と考えておくのが常識だと思うね。

だいたい他の言語に興味があるなら、その言語のスレで質問すりゃいいわけだし、
どんな自己弁護をしたところで特定言語のスレで他言語の話をする理由にはならないよ。

せめて質問者に対してVBA以外の開発環境は無いか訊ね、Rubyが使えるという自発的な回答が得られた時に初めて、
Rubyスレに誘導して、そちらで話を展開すべきだね。
0944デフォルトの名無しさん (ワッチョイ 3deb-Qbx4)
垢版 |
2018/01/22(月) 08:37:35.39ID:AE7SVx7N0
>>943
> それに質問者が明言した事以外は「出来ない」と考えておくのが常識だと思うね。
リアルでも、相手に聞きもせずに勝手にそんな縛りをかけて要件定義する人はいないと思うよ

> せめて質問者に対してVBA以外の開発環境は無いか訊ね、Rubyが使えるという自発的な回答が得られた時に初めて、
> Rubyスレに誘導して、そちらで話を展開すべきだね。
環境を聞くのは勿論ありだが、「○○だとより簡単にできるよ」ってこちらから言う事に何の問題があるのか?
今ある環境内で必ず実現する必要があるなら別だが、そうでない場合もよくあることでしょ

ま、いずれにせよ、何も聞かないうちに勝手に「○○に違いない」って決めつけるのは、
要件定義では一番しちゃいけないことだよ
0945デフォルトの名無しさん (ワッチョイ 0bfa-weOF)
垢版 |
2018/01/22(月) 10:06:54.55ID:zmIcszTc0
>>944
仕事している風を装いたいんだろうけど、明らかに経験が無いの丸出しなんだよな・・・。

そもそもVBAスレでRubyの話を出してくる事自体が問題なんだよ。
君が問題になっているのは要件定義の話ではなく開発環境の話だ。

明確な線引きをするなら、このスレではxlsmに記録し、特別な準備なしに実行できるものでなければ、何であれ許容範囲外だ。
0947デフォルトの名無しさん (ワッチョイ 0bfa-weOF)
垢版 |
2018/01/22(月) 10:23:32.81ID:zmIcszTc0
明文化されてはいないけど、過去から今までのスレでの反応を見る限りは、
だいたいxlsmファイル単体でマクロの実行が補完できるかどうかが拒絶反応の出る出ないを分けてるよ。

ただ個別にマクロが記録された二つ以上のファイルを連携させる場合の話もあるから「xlsmに記録し、準備なしに実行可能な」と定義しただけ。
押しつけるつもりはないけど、この定義で問題が無ければテンプレに加えてキチ避けしてほしいくらい。
0950デフォルトの名無しさん (ワッチョイ 23b3-x16F)
垢版 |
2018/01/22(月) 15:12:56.07ID:EwN8a0pa0
同じ現象が起きるようにできるだけ簡単なコードを用意しました

まっさらなxlsmにUserForm1を挿入し、TextBox1とTextBox2を横に並べます
UserForm1モジュールに下記のようにコードを記述します

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 39 Then
With TextBox2
.SetFocus
.SelStart = 0
End With
End If
End Sub

UserForm1を呼んだ後、TextBox2にabと記入します
このとき、TextBox1からTextBox2に矢印キー右でうつろうとするとaの前ではなくaとbの間にカーソルが来てしまいます。
どうすればaの前にカーソルが来るようになりますか?もちろんabは例示にすぎずいろんな文字列が入ります
よろしくお願いします
0951デフォルトの名無しさん (ワッチョイ 23b3-x16F)
垢版 |
2018/01/22(月) 15:25:33.05ID:EwN8a0pa0
>>950ですけど、KeyCode=40、つまり矢印キー下にセッティングして
TextBox1から2に移ると頭にカーソルきますね
ということは、入力した矢印キー右がTextBox2に移ったあとも生きててその影響が出てるってことですかね
まぁ原因分かっても解決方法が分からないのですが
0955デフォルトの名無しさん (ワッチョイ a302-GP+B)
垢版 |
2018/01/24(水) 10:46:16.37ID:QE61Ho6h0
。と。の間に入ってる文字を全部同じ文字に置換したい場合ってどうすればいいでしょうか?

。。       →。ccc。
。akok。    →。ccc。
。3293i9ia。  →。ccc。

みたいな感じです
0958デフォルトの名無しさん (ワッチョイ a302-GP+B)
垢版 |
2018/01/24(水) 13:09:34.71ID:QE61Ho6h0
こういう事がやりたいって感じです
わかりづらくてすいません

=123456789(この9桁の数字はランダム) → =123ccc789
=123456789(この9桁の数字はランダム) → =12ccc3456789
0961デフォルトの名無しさん (ワッチョイ 5b7f-pQa0)
垢版 |
2018/01/24(水) 14:37:17.59ID:626EYBnb0
2週間くらい前から、

フォームコントロールのボタンを配置すると

エクセルファイルの起動が

いつもの起動時間の5倍くらいかかる様になり困っています。

ちなみに、新規のファイルでも同じ現象になり、

他のパソコンでも同じ現象になっています。

どなたか、解決方法を知らないでしょうか?

今使っている環境は

Windows 10、バージョン 1709
Excel2016 バージョン 1712

です。
0968デフォルトの名無しさん (アウアウカー Sa21-k/NO)
垢版 |
2018/01/24(水) 21:10:53.71ID:6b5evSsja
>>913
そのテキストファイルがCSVファイルみたいにカンマ区切りで
ヘッダとして項目名が付いてて項目名に重複が無ければ
そのファイルにSQLぶん投げて結果セット取ってこれるんだけどなぁ
0969デフォルトの名無しさん
垢版 |
2018/01/24(水) 21:14:29.60
地道にループぶん回してFomulaLocalとInStrとMidしてちょ
0970デフォルトの名無しさん (ワッチョイ bdd8-k/NO)
垢版 |
2018/01/24(水) 21:29:25.29ID:l13g0WQj0
いや、ループするにしても
VbScriptingDictionary使うかCollection使って
値をキーとして登録して
同じキーがあれば無視、無ければ登録追加で
最後にその取っておいた内容を
展開するようにすればそこそこのレスポンスで
行けるんじゃないかな。

SQLで行けるならそれが最速だとは思うけど。
0973デフォルトの名無しさん (ワッチョイ aefa-W10G)
垢版 |
2018/01/25(木) 22:04:13.28ID:BYFi0PM80
一項目だけの比較なんかだとVBAでやるのと変わらないけど、色々と条件が増えていくとSQLの方が速度が落ちにくい。
あと他の誰かが見ることも考慮すると、SQLで見えるようにしておいた方が分かりやすい。

ただExcelでSQLというのは絶望的に使いづらい。
0978デフォルトの名無しさん (ワッチョイ 87d8-9OBP)
垢版 |
2018/01/26(金) 19:52:38.86ID:uoysLyn50
こういうのを見ると
早くPython導入して欲しいって思うよな
アンケート取られてたからちょっと入門見たけど結構面白いわアレ
こういった集約的なことに関してもずっと楽に作れそう
VBやC#でも後の方で覚えることになるラムダ式や
イテレーターとかごく基本的な当たり前のこととして
いきなり最初から出てくるし
0979デフォルトの名無しさん (ワッチョイ b703-rERY)
垢版 |
2018/01/26(金) 20:26:28.69ID:Vo+OzJVu0
VBAですら暴走しまくりのお前らにpythonなんか与えたら社会を困らす力作マクロ()がますます増えちゃうじゃんかw
0982デフォルトの名無しさん (ワッチョイ e3e5-WVzr)
垢版 |
2018/01/26(金) 22:15:41.07ID:pXxYwYu40
職場の環境じゃVBAくらいしか選択肢がない
0984デフォルトの名無しさん (ワッチョイ aefa-W10G)
垢版 |
2018/01/26(金) 22:40:51.06ID:VXa7znFt0
影響するのは最新バージョンだけだろうし、Excel版Pythonの初期バージョンだと使い物にならなかったり参考文献が少なかったりの問題で、
本格的に使われるようになるにしても五年以上かかりそう。そしてそこからさらに数年経たないと、そのバージョン使う会社が出てこなさそう。

っていうか今までもVBAをVB.Netへ移行させようとして失敗してたらしいし、AIブームに乗じた一時的なもんで実現しないんじゃないの。
0985デフォルトの名無しさん
垢版 |
2018/01/27(土) 00:23:34.40
Pythonって起動にめっちゃ時間がかかるから(5秒くらい)
普段使いのちょっとしたツール作るには使い物にならないという印象
0986デフォルトの名無しさん (ワッチョイ 87d8-9OBP)
垢版 |
2018/01/27(土) 00:36:59.48ID:Xe+uGT7T0
多分Python載ったとしてもしばらくはVBAと共存だろうとは思う。
勉強嫌いな爺さん達にはPythonが来るのは驚異以外の何物でもないかも知れないけど
導入されたら少なからず徐々に普及し始める。

なぁに、EXCELの中のコンパクトに纏まった世界の話だし
勉強するにはうってつけだと思う。
少なくとも今後のVBAよりは次に繋がるよ。
レス数が950を超えています。1000を超えると書き込みができなくなります。