約 2,853,956 件
https://w.atwiki.jp/excelvba/pages/13.html
Excel VBA 質問スレ Part18 のログまとめ 適当にまとめた。 コーディングは質疑とtipsに分けるべきかも試練 コーディング - コード全般 ブック操作 - ブックの操作 オブジェクト - オブジェクトの操作 イベント - イベントとか その他 - 雑談馴れ合い罵り合いとvba以外 カウンター 今日 - 昨日 - 合計 - 名前 コメント
https://w.atwiki.jp/ktonegaw/pages/73.html
Excel 入門 http //kokoro.kir.jp/index.html http //www.becoolusers.com/index.html http //www.eurus.dti.ne.jp/yoneyama/Excel/Exl-_zen.htm http //www4.synapse.ne.jp/yone/index_main.html http //office.microsoft.com/ja-jp/training/RZ006107930.aspx http //www.kenzo30.com/excel_kiso.htm http //vcl.vaio.sony.co.jp/support/special/beginner/office/ http //excel.onushi.com/ http //kaisha-seturitu.net/xls/ http //www5b.biglobe.ne.jp/~suugaku/vbakougi/ http //pc.nikkeibp.co.jp/npc/download/excel2013.html Excel VBA http //www.eurus.dti.ne.jp/yoneyama/Excel/vba/ http //excelvba.pc-users.net/ http //www.officepro.jp/excelvba/ Excel入門まとめサイト http //matome.naver.jp/odai/2132730485044001801 裏技系 http //www.h3.dion.ne.jp/~fukusima/sub2/sub2.html http //kokodane.com/ http //excel-waza.seesaa.net/ http //news.livedoor.com/article/detail/6778614/ http //ag5.net/~nino/excel.html http //pc.nikkeibp.co.jp/pc21/tech/excel43/ http //www.geocities.jp/ogino2600x/407.html http //www.rericca.com/qa/ http //www.moug.net/tech/ http //110excel.seesaa.net/ http //www.juno-e.com/excel/waza/waza.htm http //miqata.com/t/95
https://w.atwiki.jp/program_language/pages/13.html
VBA Excel
https://w.atwiki.jp/yasukoba/pages/119.html
はじめに 私の専門分野の応用例は画像処理が主ですので,画像上の画素配置を図で表現する機会があります. その表現手段として,Excelに代表される表計算ソフトは,非常に便利です. セルのサイズを変更して正方形にしてしまえば画素のイメージとなりますし,画素の階調値などを表現する場合はセル内に数値を入力すればよいので. 現在,多めに画像表現を作成する必要があるのですが,サイズを変更したり罫線を引いたり数値を入力したりの反復作業が億劫になってきました. そこで,VBAを用いてこの作業を自動化出来ないかと考えました. 私個人としてはプログラミングといえばC言語と思っていたので,マクロやVBAには手を出さずに来たのですが,限られた環境で適切に使用する分には問題ないと思い試作してみました. まだまだ途中ではありますが,Excelを用いた簡易的なプログラムを書くには非常に便利なツールであることは分かりました. VBA内での関数の使用 VBA内でも複雑な計算が必要となる場合があります. しかし,ワークシートで使用している関数すべてがVBAで使用できるわけではありませんので注意が必要です. 例) MOD - Mod ※ただし剰余対象の数が負の場合結果が異なるので使用する場合には注意! MOD(-4, 3) = 2 -4 mod 3 = -1 INT - Int
https://w.atwiki.jp/cz8686/pages/16.html
[ExcelVBA]BOOKクローズ時に保存しないように OwnBook.Saved = True [ExcelVBA]Excelブックをオブジェクト変数にセット //EXCELVBAブックをオブジェクト変数にセット Set OwnBook = ActiveWorkbook Set DataSheet = OwnBook.Worksheets("data") Set TemplateSheet = OwnBook.Worksheets("template") [ExcelVBA]データシートの行数取得 DataSheetRowCnt = DataSheet.Range("A1").CurrentRegion.Rows.Count [ExcelVBA]テキスト取込み Dim j As Integer Worksheets("Sheet1").Select Open "D \MyDocuments\data.txt" For Input As #1 //変数初期化 i = 0 Do Until EOF(1) Input #1, _ myBuf(1), myBuf(2), myBuf(3), myBuf(4), myBuf(5), myBuf(6), myBuf(7), myBuf(8), myBuf(9), myBuf(10), myBuf(11), myBuf(12), myBuf(13), myBuf(14), myBuf(15), myBuf(16), myBuf(17), myBuf(18), myBuf(19), myBuf(20), _ myBuf(21), myBuf(22), myBuf(23), myBuf(24), myBuf(25), myBuf(26), myBuf(27), myBuf(28), myBuf(29), myBuf(30), myBuf(31), myBuf(32), myBuf(33), myBuf(34), myBuf(35), myBuf(36), myBuf(37), myBuf(38), myBuf(39), myBuf(40), _ myBuf(41), myBuf(42), myBuf(43), myBuf(44), myBuf(45), myBuf(46), myBuf(47), myBuf(48), myBuf(49), myBuf(50), myBuf(51), myBuf(52), myBuf(53), myBuf(54), myBuf(55), myBuf(56), myBuf(57), myBuf(58), myBuf(59), myBuf(60), _ myBuf(61), myBuf(62), myBuf(63), myBuf(64), myBuf(65), myBuf(66), myBuf(67), myBuf(68), myBuf(69), myBuf(70), myBuf(71), myBuf(72), myBuf(73), myBuf(74), myBuf(75), myBuf(76), myBuf(77), myBuf(78), myBuf(79), myBuf(80), _ myBuf(81), myBuf(82), myBuf(83), myBuf(84), myBuf(85), myBuf(86), myBuf(87), myBuf(88), myBuf(89), myBuf(90), myBuf(91), myBuf(92), myBuf(93), myBuf(94), myBuf(95), myBuf(96), myBuf(97), myBuf(98), myBuf(99), myBuf(100), _ myBuf(101), myBuf(102), myBuf(103), myBuf(104), myBuf(105), myBuf(106), myBuf(107), myBuf(108), myBuf(109), myBuf(110), myBuf(111), myBuf(112), myBuf(113), myBuf(114), myBuf(115), myBuf(116), myBuf(117), myBuf(118), myBuf(119), myBuf(120), _ myBuf(121), myBuf(122), myBuf(123), myBuf(124), myBuf(125), myBuf(126), myBuf(127), myBuf(128), myBuf(129), myBuf(130), myBuf(131), myBuf(132), myBuf(133), myBuf(134), myBuf(135), myBuf(136), myBuf(137), myBuf(138), myBuf(139), myBuf(140), _ myBuf(141), myBuf(142), myBuf(143), myBuf(144), myBuf(145), myBuf(146), myBuf(147), myBuf(148), myBuf(149), myBuf(150), myBuf(151), myBuf(152), myBuf(153), myBuf(154), myBuf(155), myBuf(156), myBuf(157), myBuf(158), myBuf(159), myBuf(160), _ myBuf(161), myBuf(162), myBuf(163), myBuf(164), myBuf(165), myBuf(166), myBuf(167), myBuf(168), myBuf(169), myBuf(170), myBuf(171), myBuf(172), myBuf(173), myBuf(174), myBuf(175), myBuf(176), myBuf(177), myBuf(178), myBuf(179), myBuf(180), _ myBuf(181), myBuf(182), myBuf(183), myBuf(184), myBuf(185), myBuf(186), myBuf(187), myBuf(188), myBuf(189), myBuf(190), myBuf(191), myBuf(192), myBuf(193), myBuf(194), myBuf(195), myBuf(196), myBuf(197), myBuf(198), myBuf(199), myBuf(200), _ myBuf(201), myBuf(202), myBuf(203), myBuf(204), myBuf(205), myBuf(206), myBuf(207), myBuf(208), myBuf(209), myBuf(210), myBuf(211), myBuf(212), myBuf(213), myBuf(214), myBuf(215), myBuf(216), myBuf(217), myBuf(218), myBuf(219), myBuf(220), _ myBuf(221), myBuf(222), myBuf(223), myBuf(224), myBuf(225), myBuf(226), myBuf(227), myBuf(228), myBuf(229), myBuf(230), myBuf(231), myBuf(232), myBuf(233), myBuf(234), myBuf(235), myBuf(236), myBuf(237), myBuf(238), myBuf(239), myBuf(240), _ myBuf(241), myBuf(242), myBuf(243), myBuf(244), myBuf(245), myBuf(246), myBuf(247), myBuf(248), myBuf(249) i = i + 1 For j = 1 To 249 Cells(i, j) = myBuf(j) Next j Loop Close #1 [ExcelVBA]テキスト出力 Sub outputXML() Dim SaveFilename As String Dim i As Integer Dim DataSheetRowCnt As Integer データ行数取得 DataSheetRowCnt = ActiveWorkbook.Worksheets("Sheet1").Range("A1").CurrentRegion.Rows.Count SaveFilename = Application.GetSaveAsFilename("test", "(*.xml),*.xml", , "結果の保存") SaveFilename = ActiveWorkbook.Path "\" "address.xml" MsgBox SaveFilename vbCr "に出力されました" Open SaveFilename For Output As #1 Print #1, " ?xml version= 1.0 encoding= Shift_JIS ? " Print #1, " ?xml-stylesheet type= text/xsl href= address.xsl ? " Print #1, " 名簿 " For i = 3 To DataSheetRowCnt Print #1, " 連絡先 " Print #1, " 正式名称 "; Cells(i, 1).Value; " /正式名称 " Print #1, " 略称 "; Cells(i, 2).Value; " /略称 " Print #1, " 担当者 "; Cells(i, 3).Value; " /担当者 " Print #1, " 内線 "; Replace(Cells(i, 4).Value, Chr(10), "、"); " /内線 " Print #1, " メールアドレス "; Replace(Cells(i, 5).Value, Chr(10), "、"); " /メールアドレス " Print #1, " 担当システム "; Replace(Cells(i, 6).Value, Chr(10), "、"); " /担当システム " Print #1, " 備考 "; Cells(i, 7).Value; " /備考 " Print #1, " 補足 "; Cells(i, 8).Value; " /補足 " Print #1, " /連絡先 " Next i Print #1, " /名簿 " Close #1 ActiveWorkbook.Save End Sub [ExcelVBA]フォルダ選択ダイアログ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ パブリック変数宣言 ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ■定数■ /* BrowseForFolder Method Options */ Const BIF_RETURNONLYFSDIRS = H1 // Only return file system directories. ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ フォルダ取得ダイアログを表示する (BrowseForFolder関数) 引数 sTitle タイトルの文字列 nOptions 選択オプションの値 sRootFolder 既定フォルダの文字列 ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ Public Function BrowseForFolder(sTitle As String, nOptions, Optional sRootFolder As String = "") As String Dim oShell As Object Dim oFolder As Object Set oShell = CreateObject("Shell.Application") Set oFolder = oShell.BrowseForFolder(0, sTitle, nOptions, sRootFolder) If oFolder Is Nothing Then BrowseForFolder = "" Else If oFolder.ParentFolder Is Nothing Then 下位の未選択デスクトップ Dim objWShell As Object WScript.Shell シェルのオブジェクトを作成 Set objWShell = CreateObject("WScript.Shell") デスクトップの場所を返す BrowseForFolder = objWShell.SpecialFolders("Desktop") オブジェクトの解放 Set objWShell = Nothing Else BrowseForFolder = oFolder.Items.Item.Path パスをセットする End If End If Set oFolder = Nothing Set oShell = Nothing End Function sub 呼び出しがわ() dim PUB_SAVE_FOLDER as String PUB_SAVE_FOLDER = BrowseForFolder(mymsg, BIF_RETURNONLYFSDIRS, "") Msgbox PUB_SAVE_FOLDER end sub [ExcelVBA]改行コードの除去 Sub test() Dim value1 As String value1 = Cells(1, 2) value1 = Replace(value1, Chr(10), "") 改行コードの除去 Chr(10)= LF:改行 MsgBox value1 Cells(2, 1) = value1 End Sub [ExcelVBA]全シート選択・プレビュー Dim i As Integer For i = ActiveWorkbook.Worksheets.Count To 1 Step -1 ActiveWorkbook.Worksheets(i).Select fase Next i ActiveWindow.SelectedSheets [Excel関数]色々 ■(例)セル値が○になっているデータの数をカウントする。 =COUNTIF(E4 E25,"○") ■(例)セル値が空欄の数をカウントする。 =COUNTBLANK(E5 E27)
https://w.atwiki.jp/dotcom/pages/18.html
Excelについていろいろ書きます。 マクロと呼ばれているVBAを使ってBook Sheet Cellの操作を行います。 時には別ファイル操作もします。 Excelについての最初の記事 Excelはじめました? 「Excel」を含む記事 Excelタグ Excelを含む記事一覧 Excel記事 Bookをまとめて閉じてしまうなマウス操作 IEでExcelファイルを開いちゃうといろいろ面倒なんだ。 VBA/シート保護しててもオートフィルタを使いたい VBA/変数の宣言 VBA/関数がたくさんのシートでVBA動かすとすげー遅いって気づいたよびっくりだよほんと!! シートの切り替えをショートカットキーでかっこよく決めたいの セルの入力文字数を制限したいの データが失われた可能性がありますって言われちゃうんだよ マクロのセキュリティレベルのデフォルト値はバージョンによって違うの 数式バーが邪魔なの 日付のセルたちを使って曜日カウントしたいの 絶対参照と相対参照の切り替えをショートカットキーでかっこよくやりたいの 複数セル内の合計文字数がしりたいの
https://w.atwiki.jp/excelava/pages/17.html
名言や素敵な行動 EpA。Be4t(マスター) wiki作成時にEcxel()にする 彼は現役高校生() ちょっとExcelの人しっかり仕事して さすがExcelの人 違うそこ違う さすがExcelの「マスター」でしょ(ドン引き)
https://w.atwiki.jp/yamajiyuta/pages/16.html
VBA(Visual Basic for Applications) マクロとは、アプリケエーションソフトの操作を自動化するための機能である。 シートやフォームに関連しないコードを標準モジュールという。 メッセージボックスを表示する。 Sub Message() MsgBox "Hello World!" End Sub SubとEnd Subの間に記述したコードのかたまりをプロシージャという。 ステートメントを次の行に続ける場合は、改行の前に「 _」(半角スペースとアンダーバー)を記述する。 コメントは「 」(シングルクォーテーション)を使って記述する。 変数の宣言 Integer型(整数)の変数aを宣言する。 Dim a As Integer 文字列型 文字列はStringというデータ型に格納する。 Dim fruit As String fruit = "りんご" 定数 定数はConstを使って定義する。 Const PI As Integer = 3.14 定数に値を代入することはできない。 特殊文字 vbCr 改行 vbTab タブ vbBack バックスペース vbNullChar NULL文字 配列 配列の宣言 Dim a(1 To 4) As Integer または、 Dim a(3) As Integer 配列の要素の参照と代入 a(0) = 1 MsgBox a(0) MsgBox関数 MsgBox (prompt[, buttons][,title][, helpfile, context]) Buttonsには、vbOKOnly、vbOKCancel、vbYesNo、vbYesNoCancelなどを指定できる。 プロシージャ Subプロシージャは戻り値がない。 SubステートメントとEnd Subステートメントを使って定義する。 引数のあるプロシージャは以下のように定義する。 Sub A(str As String) MsgBox str End Sub Functionプロシージャは戻り値がある。 FunctionステートメントとEnd Functionステートメントを使って定義する。 Function A() aaa = "Hello" End Function プロシージャの呼び出しにはCallステートメントを用いる。 Call A 引数を渡して呼び出す場合 Call A("引数1") 変数のスコープ プロシージャ内で宣言した変数は、宣言したプロシージャ内でのみ有効である。 モジュールの先頭で宣言した変数は、モジュール内で有効である。 バリアント型 宣言せずに使用した変数のデータ型をバリアント型(Variant)という。 バリアント型のサイズは16バイトである。 モジュールの先頭で次のように記述すると、宣言していない変数を使用できないようにできる。 Option Explicit 文字列連結演算子 MsgBox "2010" "年" ""IF~Thenステートメント If 条件 Then 処理1 ElseIf 条件2 Then 処理2 ElseIf 条件3 Then 処理3 Else 処理4 End If ""Select Caseステートメント Select Case 式 Case 値1 処理1 Case 値2 処理2 Case Else 処理n End Select 値の指定方法 Case 4,5,6 Case 2 To 5 // 範囲指定 比較演算子の使用 Case Is 10 For~Nextステートメント Dim i As Integer For i = 0 To 3 処理 Next 増分の指定 Dim i As Integer For i = 2 To 30 Step 3 処理 Next For Each ~Nextステートメント あるオブジェクトの集まりに対して、その中のすべての要素に対して処理を行う。 Dim ws As WorkSheet For Each ws In WorkSheets 処理 Next Do~Loopステートメント Do While~Loopステートメント 処理の前に条件を評価する。 Do While 条件 処理 Loop Do ~Loop Whileステートメント 処理の後に条件を評価する(必ず1度処理を実行する)。 Do 処理 Loop While 条件 ある条件が成立するまで繰り返しを実行するには、Untilを使用する。 Do Until~Loopステートメント 処理の前に条件を評価する。 Do Until 条件 処理 Loop Do ~Loop Untilステートメント 処理の後に条件を評価する(必ず1度処理を実行する)。 Do 処理 Loop Until 条件 Exitステートメント Exit For Exit Do 無限ループ [Ctrl] + [Break]で中断可能 オブジェクト 操作の対象となる、Excelのワークブックやワークシートをオブジェクトという。 また同じ種類のオブジェクトをひとまとめにしたものをコレクションという。 オブジェクトはObject型の変数に代入できる。 Setステートメントで変数とオブジェクトを関連付ける。 Dim obj As Object Set obj = Application 変数とオブジェクトの関連付けを無効にする場合は、Nothingキーワードを使用する。 Set obj = Nothing プロパティ プロパティとは、オブジェクトの状態や属性のことである。 参照 Dim cnt As Integer cnt = ThisWorkbook.Worksheeets.Count メソッド メソッドとは、オブジェクトを操作したり、動作させるインターフェースである。 ワークブックBook2をアクティブにする。 Workbooks("Book2").Activate 例 A1 A3にHelloを記入する。 Sub SheetActivate Sheet3.Activate ActiveSheet.Range("A1 A3").Select Selection.Value = "Hello" End Sub ワークブックBook1を、保存せずに閉じる。 WorkBooks("Book1").Close False 2番目のワークシートの次に、ワークシートを1つ追加する。 Worksheets.Add After =Worksheets(2), Count =1 ユーザーフォームの操作 ユーザーフォームを表示する Load UserForm1 UserForm1.Show ユーザーフォームを閉じる Unload UserForm1 セルの参照 1つのセルを参照するには、CellsプロパティまたはRangeプロパティを使用する。 A1セルに10を代入する。 Cells(1,1).Value = 10 Range("A1").Value = 10 セル範囲の参照 Range("A1","B2").Select アクティブセルの参照 MsgBox ActiveCell.Value VBAで数式を取得・設定するにはFormulaプロパティを使用する。 Cells(1,1).Formula= "=1+1" セルの表示形式 NumberFormatプロパティを使用する。 日付 ActiveCell.Value = "2010/5/5" ActiveCell.NumberFormat = "yyyy年m月d日" 通貨 ActiveCell.Value = "1000" ActiveCell.NumberFormat = "\\#,##0" 桁数指定 ActiveCell.Value = "10" ActiveCell.NumberFormat = "0.00" 文字の色 Cells(1,1).Value = "AAAAA" Cells(1,1).Font.Color = RGB(255,0,0) 文字の大きさ Cells(1,1).Value = "AAAAA" Cells(1,1).Font.Size = 8 罫線 ActiveCell.Borders.LineStyle = xlContinuous 他には、xlDash、xlDoubleなど セルの塗りつぶし ActiveCell.Interior.Color = RGB(200,200,200)
https://w.atwiki.jp/sevenlives/pages/446.html
Excel【Microsoft Excel】 読み:まいくろそふとえくせる 英語:Microsoft Excel 別名: 意味: エクセルとはMicrosoft社のオフィス用ソフトOffice?の一つの表計算ソフトのこと。 計算したりグラフを作ったり、データを様々に扱う機能に優れている。 VBA?といったプログラム言語も標準装備されており、オリジナルの計算処理(マクロ?)といったことも可能。 CSVなど数々のフォーマット?にも対応しており簡単なデータベースとしても使える。 現在では表計算ソフト?のディファクトスタンダード?といってもいいほど世界に広まっている。 保存ファイルの拡張子は「.xls」 2008年05月29日 マクロ? VBA? ブック セル(Excel)アクティブ・セル ワークシート ゴールシーク? オートフィル
https://w.atwiki.jp/microsoftexcelmatome/pages/15.html
概要 VBAとは何か。 簡単に言うと、プログラムを書いてExcelに人間様がやっているお仕事をやらせ、キリキリ働かせて残業をゼロにするためのツールである。 おつむの弱い人には使いこなせない。 もうちょっとマシな概要 「マクロを記録」で自動生成したコードを編集しながらヘルプを引いて学習することで、事務員さんであっても瞬く間に一流のプログラマーにしてしまう恐るべきMicrosoftのキラーアプリであるMS Officeのマクロ環境のこと。 vimxls(ググれ)のように編集のキーバインド自体をテキストエディタのようにしてしまうようなアドインすら存在する。 Tips VBE[?] ウォッチ式の追加[?] ヘルプの引き方[?] 対話的操作 エラーのトラップ VBAを書かずにExcelやWordやOutlookを自動運転してPDFやらを作ったりする range.offset などの成句で引くとそのものずばりが出る。(2010のみ?)