分かってるようで分かってない
VBA |
全セル選択 =MOD(COLUMN(),1)=0
縦線入る |
|
|
|
|
|
ワンドライブと、Zeroへ保存すること |
|
'
$A$1:$C$2には「=MOD(COLUMN(),1)=0」で左右罫線無し |
|
|
|
|
|
日付 |
内容 |
備考 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024/3/5 |
「FormulaR1C1」で変動する範囲の書き方 |
|
|
|
|
|
|
|
宣言した変数を「" & ○○ & "」で囲む (「”や&
変数前後のスペースは半角) |
|
|
|
|
|
|
|
Range("I5").FormulaR1C1 =
"=IF(AND(商品名入力セル<>"""",単価入力セル<>""""),COUNTIF(R[3]C:R[" & 最終行 & "]C,R[-1]C),""No"")" |
|
|
|
|
|
|
2024/2/29 |
Sub aiu() |
CurrentRegion内のセルはどれを指定しても範囲は同じ。 |
|
|
|
|
|
|
Range("b5").CurrentRegion.Select |
CurrentRegionで指定すると左上がアクティブになる。 |
|
|
|
|
|
|
Range("b5").CurrentRegion.Offset(1, 2).Select |
Offsetで動かしてもアクティブセルは左上になる。 |
|
|
|
|
|
|
End Sub |
CurrentRegionをOffsetで動かすと範囲全体が指定した分ずれる。 |
|
|
|
|
|
2023/12/15 |
セルに関数を入れる |
|
|
|
|
|
|
|
Range("g1").Value =
WorksheetFunction.Sum(Range("d1:f1")) |
G1に計算結果、たとえば「321」が表示される |
|
|
|
|
|
|
Range("h1").Value = "=sum(d1:f1)" |
H1に数式「Sum(D1:F1)」が入る |
|
|
|
|
|
|
Range("I1").FormulaR1C1 =
"=SUM(RC[-5]:RC[-3])" |
I1に数式「SUM(D1:F1)」が入る |
|
|
|
|
|
2023/10/23 |
Sub a() '選択範囲は同じ |
新VBAプログラミング P.10 |
|
|
|
|
|
|
Range("a1:B3").Select |
|
|
|
|
|
|
|
Range("a1", "b3").Value = 1 |
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
2023/7/30 |
セルに数式を入れる。Formulaを使うと再計算してくれる |
|
|
|
|
|
|
|
Sub aiueo() |
|
|
|
|
|
|
|
Dim
最終行 |
|
|
|
|
|
|
|
最終行 = Cells(Rows.Count, 1).End(xlUp).Row |
|
|
|
|
|
|
|
Range(Cells(1, 5), Cells(最終行, 5)).Formula =
"=Concat(a1, b1, c1)" |
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
2023/5/23 |
Range("a1") =
InputBox("何か入力してください:"
& Chr(10) &
"aaa", "入力") |
|
|
|
|
|
|
|
'「& 」が無いとエラーになる(改行しない時は「&」不要 |
|
|
|
|
|
|
2023/3/8 |
計算できる数式例 |
|
|
|
|
|
|
|
Range("B1").Formula = "=ROUNDUP((C1- 1) / 2,
0)" |
C1に数値が入っている |
|
|
|
|
|
|
Range("B2") =
(カードの最終列 - 5) / 2 + 1 |
|
|
|
|
|
|
|
Range("B3").Formula = "=ROUNDUP((B4 - 5) / 2 ,
0)" |
B4に変数値が入っている時 |
|
|
|
|
|
2023/2/27 |
ActiveSheet.PageSetup.PrintArea =
Range("b1").CurrentRegion.Address |
|
|
|
|
|
|
|
MsgBox Range("b1").CurrentRegion.Address |
|
|
|
|
|
|
|
↑ カレントレヒオンのアドレスが表示される |
|
|
|
|
|
|
2023/1/31 |
Sub a1() |
|
|
|
|
|
|
|
Cells(1, Columns.Count).End(xlToLeft).Select '空白ある時の最終列セル |
|
|
|
|
|
|
|
Cells(1, Columns.Count).Select |
|
|
|
|
|
|
|
'XFD1 選択される |
|
|
|
|
|
|
|
Range("A1").End(xlToRight).Select |
|
|
|
|
|
|
|
'空白セルの左セルが選択 |
|
|
|
|
|
|
|
'最終の列 = Cells(1,
Columns.Count).End(xlToLeft).Column |
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
2022/3/18 |
B2:B10の最終行選択(B4空白時はB3を選択する) |
|
|
|
|
|
|
|
「Range("B2").End(xlDown).Select」でB列最終行(空白の上)を取る |
|
|
|
|
|
|
|
Range("B2").End(xlDown).Offset(1).Select で1行下を選択する |
|
|
|
|
|
|
|
空白が有るときは「最終行
= Cells(Rows.Count, 1).End(xlUp).Row」を使う |
|
|
|
|
|
|
2022/3/6 |
累計(forを使って) |
すぐ分かるVBA(P187) |
|
|
|
|
|
|
ruikei = 0 |
For の前にruikei=0 を置かないとダメ |
|
|
|
|
|
|
For
i = Range("B3").Value To Range("D3").Value |
|
|
|
|
|
|
|
ruikei = ruikei + i |
|
|
|
|
|
|
|
Next
i |
|
|
|
|
|
|
2022/3/3 |
Range(ActiveCell.Offset(3), ActiveCell.Offset(28)).Copy |
Offsetを使った範囲指定の仕方 |
|
|
|
|
|
|
|
|
|
|
|
|
|
2022/2/20 |
m = WorksheetFunction.RoundUp(取り出した文字数
/ 6, 0) |
VBAでワークシート関数使う時「
WorksheetFunction.・・・」 |
|
|
|
|
|
|
(上のコマンドでは「計算結果」が表示される。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022/2/6 |
Columns,rows |
Range以外の指定方法(Cells,Rows,Columns)|VBA入門
(excel-ubara.com) |
|
|
|
|
|
|
Rows(5) 5行目の行全体になります。 |
|
|
|
|
|
|
|
Rows("1:5") 1~5行の5行分全体の範囲 |
|
|
|
|
|
|
|
Columns(3) C列の全体になります |
Column→列番号が取れる、Columuns()→何列目の列全体を指定する |
|
|
|
|
|
|
数値指定の場合は複数列の指定はできません |
|
|
|
|
|
|
|
Columns("A:C") A列~C列の3列の指定 |
|
|
|
|
|
|
2022/2/3 |
Sub 複数列削除220203() |
【エクセルマクロ】変数を使用して列を削除:使用例5選
| kirinote.com |
|
|
|
|
|
|
Dim
i, ii, 削除最初の列,
削除最後の列 |
|
|
|
|
|
|
|
i =
ActiveCell.Column |
|
|
|
|
|
|
|
ii =
Selection.Columns.Count |
|
|
|
|
|
|
|
削除最初の列 = ii + 1 |
|
|
|
|
|
|
|
MsgBox 削除最初の列 |
|
|
|
|
|
|
|
削除最後の列 = ii + ii |
|
|
|
|
|
|
|
MsgBox 削除最後の列 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Range(Columns(削除最初の列),
Columns(削除最後の列)).Delete |
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
2022/1/24 |
市松模様塗りつぶしコード |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022/12/29 |
Sub a() |
|
|
|
|
|
|
|
Dim
aaa |
|
|
|
|
|
|
|
|
Thisworkbookで採る名前を変える時、前へ付ける。 |
|
|
|
|
|
|
MsgBox aaa |
|
|
|
|
|
|
|
ThisWorkbook.SaveCopyAs aaa |
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022/12/21 |
Sub 書式消す() |
|
|
|
|
|
|
|
Selection.ClearContents |
中身 |
|
|
|
|
|
|
Selection.MergeCells = False |
結合解除 |
|
|
|
|
|
|
Selection.Interior.ColorIndex = 0 ←(数字のゼロ) |
塗りつぶし無し |
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
2022/12/21 |
selection.MergeCells = True |
セル結合 |
|
|
|
|
|
|
selection.MergeCells =False |
結合解除 |
|
|
|
|
|
2022/11/17 |
Range("C6:D11").Copy |
「すぐ分かる…」P115関連 |
|
|
|
|
|
|
Range("G19").End(xlUp).Offset(1).PasteSpecial
_ |
記入済みセルの一つ下へ行列変換して貼り付ける。 |
|
|
|
|
|
|
Paste:=xlPasteValues, Transpose:=True |
G19は適当なセルでよい |
|
|
|
|
|
|
|
|
|
|
|
|
|
2022/11/16 |
Sub tomoko() |
「すぐ分かる…」P112関連 |
|
|
|
|
|
|
Select Case Range("n2").Value |
|
|
|
|
|
|
|
Case 1 |
|
|
|
|
|
|
|
Range("C11:AG11").Copy Range("C6") |
|
|
|
|
|
|
|
Case 2 |
|
|
|
|
|
|
|
Range("C12:AG12").Copy Range("C6") |
|
|
|
|
|
|
|
End
Select |
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022/11/13 |
「オブジェクト名.プロパティ」という解説はウソですよ:エクセルマクロ・Excel VBAの使い方 (relief.jp) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022/11/12 |
VBA_アイコン一覧はこのファイルの「VBA
アイコン」にあり |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022/11/10 |
Sub 選択() |
B3:O30が選択されて、O30がアクティブになる |
|
|
|
|
|
|
Range("B3").CurrentRegion.Select |
Range("O30").「Activate」が使われているから。 |
|
|
|
|
|
|
Range("O30").Activate |
すぐ分かる…のP105 |
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022/11/10 |
Columns(3).Hidden = True →○ |
複数列番号はえらーになるらしい |
|
|
|
|
|
|
Columns("C:F").Hidden = True→○ |
|
|
|
|
|
|
|
Columns("3:6").Hidden = True →× |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022/11/4 |
Range("B2,
B3, B4, B5").Borders(xlEdgeBottom).LineStyle = xlContinuous |
B2~B5セルの下に線が引かれる |
|
|
|
|
|
|
Range("B2:B5").Borders(xlEdgeBottom).LineStyle
= xlContinuous |
B5セルの下に線が引かれる |
|
|
|
|
|
2022/11/2 |
Sub
表示形式カンマ() 'すぐ分かる…VBAのP89参照 |
|
NumberFormat→英語にみに対応。例 ="General" |
|
|
|
|
|
|
Range("C4:D19,F4:F19").NumberFormat = "#,##0" |
NumberFormatLocal→日本語に対応 例 =”G/標準” |
|
|
|
|
|
|
End Sub |
#,##0はどちらにも対応する |
|
|
|
|
|
|
'MsgBox
Range("C4").NumberFormatLocal で表示形式が分かる |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022/10/29 |
最終行セルの選択 Ctrl+↓ (連続したセルの最終行のセル) |
すぐ分かる…P71 |
|
|
|
|
|
|
最終列セルの選択 Ctrl+→ (連続したセルの最終列のセル) |
|
|
|
|
|
|
|
CurrentRegionはCtrl+Shift+* (テンキー
はCtrl+*) |
|
|
|
|
|
|
2022/10/28 |
addressで参照を表示する
$a$1,a$1など→ActiveCell.Address(True, False) ‘ C$14 |
VBA心覚えに有り |
|
|
|
|
|
2022/10/28 |
|
選択範囲とアクティブセル番地を表示する。 |
|
|
|
|
|
|
Range("B2:C5").Select |
それぞれを「&」で繋ぐだけ! |
|
|
|
|
|
|
Range("B2").Activate |
|
|
|
|
|
|
|
MsgBox
ActiveCell.Address &
Range("B2:C5").Address |
|
|
|
|
|
|
|
'$B$2$B$2:$C$5
アクティブセルは $B$2 |
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
2022/9/1 |
Sub
CurrentRegionプロパティを確認する() |
[Ctrl]キー+[Shift]キー+[*]キーを押す |
|
|
|
|
|
|
Range("d4").CurrentRegion.Select |
※テンキーの[*]キーを使う場合[Shift]キーは不要 |
|
|
|
|
|
|
MsgBox
Selection.Address(False, False) |
「(False, False)」を付けると相対参照になる。 |
|
|
|
|
|
|
End Sub |
CurrentRegionの意味:ExcelVBA
Rangeオブジェクト/CurrentRegionプロパティ
(relief.jp) |
|
|
|
|
|
|
アクティブセル領域とは、選択されているセル範囲から、すべての方向の最初の空白行・空白列までの領域のこと |
|
|
|
|
|
|
2021/9/1 |
最下行(トップ)を選ぶ(一体型パソ)→Ctrl+Fn+End(Home) |
|
|
|
|
|
|
2022/8/28 |
Sub
ユーザーフォーム閉じる() |
川柳転記を含むファイルに記述するらしい |
|
|
|
|
|
|
Unload 川柳転記 |
【VBA】ユーザーフォームの呼び出しと閉じる【モードレスで表示したまま他の操作】 (daitaideit.com) |
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
2022/8/21 |
Sub
選択範囲の罫線を消す() |
|
|
|
|
|
|
|
Selection.Borders.LineStyle = xlNone |
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022/7/25 |
Sub aa()
'A1に「=1*100」が入っているコピー貼り付け(数式とも、値のみ) |
|
|
|
|
|
|
|
Range("A2").Value = Range("A1").Text '①値のみ貼り付け |
|
|
|
|
|
|
|
Range("B2").Value = Range("A1").Value '②値のみ貼り付け |
|
|
|
|
|
|
|
Range("a1").Copy Range("C2")
'③数式とも、値貼り付け |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
'①②はデータで張り付いている。③は数式・塗りつぶしとも貼り付け。 |
|
|
|
|
|
|
|
'③のCopy
Rangeの間にカンマはなし。 |
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022/7/24 |
Sub
塗りつぶしが隣の時元のセルに色を付ける() |
|
|
|
|
|
|
|
Dim i |
|
|
|
|
|
|
|
For i
= 3 To 50 |
|
|
|
|
|
|
|
If
Cells(i, 4).Offset(0, -1).Interior.Color = RGB(217, 217, 217) = True Then Cells(i, 4).Interior.Color = RGB(217, 217, 217) |
|
|
|
|
|
|
|
Next |
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022/7/18 |
Private Sub
CommandButton1入力転記_Click() |
210715_ボタンの練習 のユーザーフォームのコード |
|
|
|
|
|
|
最終の列 = Cells(2,
Columns.Count).End(xlToLeft).Column + 1 |
|
|
|
|
|
|
|
日付の値 = TextBox1.Value |
|
|
|
|
|
|
|
Cells(2, 最終の列).Value =
日付の値 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
For 番号 = 2 To 24 |
|
|
|
|
|
|
|
If
CheckBox5.Value = True Then Cells(3, 最終の列).Value
= "水野入金" |
|
|
|
|
|
|
|
If
CheckBox2.Value = True Then Cells(4, 最終の列).Value
= "原田入金" |
|
|
|
|
|
|
|
If
CheckBox3.Value = True Then Cells(5, 最終の列).Value
= "下田入金" |
|
|
|
|
|
|
|
If
CheckBox4.Value = True Then Cells(6, 最終の列).Value
= "樫山入金" |
|
|
|
|
|
|
|
If
CheckBox6.Value = True Then Cells(7, 最終の列).Value
= "竹内入金" |
|
|
|
|
|
|
|
If
CheckBox7.Value = True Then Cells(8, 最終の列).Value
= "梶本入金" |
|
|
|
|
|
|
|
If
CheckBox8.Value = True Then Cells(9, 最終の列).Value
= "辻入金" |
|
|
|
|
|
|
|
If
CheckBox9.Value = True Then Cells(10, 最終の列).Value
= "小野入金" |
|
|
|
|
|
|
|
If
CheckBox10.Value = True Then Cells(11,
最終の列).Value =
"馬場入金" |
|
|
|
|
|
|
|
If
CheckBox11.Value = True Then Cells(12,
最終の列).Value =
"坂本入金" |
|
|
|
|
|
|
|
If
CheckBox12.Value = True Then Cells(13,
最終の列).Value =
"中島入金" |
|
|
|
|
|
|
|
If
CheckBox13.Value = True Then Cells(14,
最終の列).Value =
"高井入金" |
|
|
|
|
|
|
|
If
CheckBox14.Value = True Then Cells(15,
最終の列).Value =
"中村入金" |
|
|
|
|
|
|
|
If
CheckBox15.Value = True Then Cells(16,
最終の列).Value =
"中浦入金" |
|
|
|
|
|
|
|
If
CheckBox16.Value = True Then Cells(17,
最終の列).Value =
"宮原入金" |
|
|
|
|
|
|
|
If
CheckBox17.Value = True Then Cells(18,
最終の列).Value =
"江藤入金" |
|
|
|
|
|
|
|
If
CheckBox18.Value = True Then Cells(19,
最終の列).Value =
"都留入金" |
|
|
|
|
|
|
|
If
CheckBox19.Value = True Then Cells(20,
最終の列).Value =
"布谷入金" |
|
|
|
|
|
|
|
If
CheckBox20.Value = True Then Cells(21,
最終の列).Value =
"若林入金" |
|
|
|
|
|
|
|
If
CheckBox21.Value = True Then Cells(22,
最終の列).Value =
"山木入金" |
|
|
|
|
|
|
|
If
CheckBox22.Value = True Then Cells(23,
最終の列).Value =
"藤原入金" |
|
|
|
|
|
|
|
If
CheckBox23.Value = True Then Cells(24,
最終の列).Value =
"増田入金" |
|
|
|
|
|
|
|
If
CheckBox24.Value = True Then Cells(25,
最終の列).Value =
"城野入金" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Controls("CheckBox" & 番号) =
False
'CheckBoxのチェックを外す |
|
|
|
|
|
|
|
Next |
|
|
|
|
|
|
|
TextBox1.Text = ""
'テキストボックスの入力分を削除する |
←Next の中に記述すると日付が空白になる。 |
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022/7/9 |
罫線引き、拡大縮小無し、縦横1ページ、水平方向中央、印刷プレビュー表示する |
PagesetUPはWorksheetのプロパティ。 |
|
|
|
|
|
|
Sub innsatu_2() |
以下でもOK |
|
|
|
|
|
|
Range("B5").CurrentRegion.Select |
'Dim saisyuugyou |
|
|
|
|
|
|
Selection.Borders.LineStyle = True |
'saisyuugyou =
Cells(Rows.Count, 7).End(xlUp).Row |
|
|
|
|
|
|
With
ActiveSheet.PageSetup |
'Range(Cells(5,
2), Cells(saisyuugyou, 7)).Select |
|
|
|
|
|
|
.Zoom = False |
ZoomをOFにする(Falseにする) |
|
|
|
|
|
|
.FitToPagesWide = 1 |
|
|
|
|
|
|
|
.FitToPagesTall = 1 |
FOM第5章 P173辺りに記載。 |
|
|
|
|
|
|
.FitToPagesWide = 1 |
|
|
|
|
|
|
|
.CenterHorizontally = True |
|
|
|
|
|
|
|
End With |
|
|
|
|
|
|
|
Range("A1").Select |
|
|
|
|
|
|
|
ActiveSheet.PrintPreview |
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
2022/6/30 |
Range("A2") = ActiveCell.Row |
A2にアクティブセル値を入れる |
|
|
|
|
|
|
Cells.Rows.Count |
全行数を数える。特定の部分の行数では無い。cellsで全セルが選択できる。 |
|
|
|
|
|
|
cells.select |
全部のセルを選択する |
|
|
|
|
|
|
MsgBox Cells(Rows.Count, 3).End(xlUp).Row |
3列目1048576行目から数え上げて入力済みの行番号を表示する |
|
|
|
|
|
2022/6/23 |
ActiveCell.Offset(1, 0).Resize(14#).Select |
Resizeの時、一列(その列)だけの時は「#」を入れる。「0」にするとえらーに。 |
|
|
|
|
|
2022/5/15 |
Sub 色検索_22() |
オートフィルタを使うマクロ |
|
|
|
|
|
|
iro =
InputBox("iro ha?" & vbCrLf &
"赤・白・ロゼで") |
FOM第5章 商品リスト |
|
|
|
|
|
|
If
iro = "赤" Or iro = "白" Or iro =
"ロゼ" Then |
テキストでは赤白ロゼ以外の時の対応は無し。 |
|
|
|
|
|
|
Range("$B$5:$G$24").Select |
|
|
|
|
|
|
|
Selection.AutoFilter |
|
|
|
|
|
|
|
ActiveSheet.Range("$B$5:$G$24").AutoFilter Field:=3,
Criteria1:=iro |
数字の「1」、「l」ではない |
|
|
|
|
|
|
Else |
ActiveSheet.Range("$B$5:$G$24").AutoFilter 3,iro でも動く。 |
|
|
|
|
|
|
Exit Sub |
↑「Field:=」や「Criteria1:=」は名前付き引数 |
|
|
|
|
|
|
End
If |
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
2022/6/15 |
1004エラー(アプリケーション定義またはオブジェクト定義のエラーです) |
|
|
|
|
|
|
|
ケース1:Cellsの指定ミス |
|
|
|
|
|
|
|
ケース2:Rangeの範囲指定ミス |
|
|
|
|
|
|
2022/6/12 |
If
Range("A1") = "a" Or Range("A1") = "b" Or Range("A1") =
"c" Then |
A1が「a,b,c」以外はマクロを停止する |
|
|
|
|
|
|
Range("A2") = "OK" |
|
|
|
|
|
|
|
Else |
|
|
|
|
|
|
|
Exit Sub |
|
|
|
|
|
|
|
End If |
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
2022/6/10 |
改行する時 |
ExcelではvbLf(VBAやエクセルで使う) |
|
|
|
|
|
|
iro = InputBox("iro ?" &
vbCrLf & "赤、白、ロゼを選ぶ") |
メモ帳ではvbCrLf (あまり使わない) |
|
|
|
|
|
|
|
https://daitaideit.com/vba-vbcrlf/ |
|
|
|
|
|
2022/6/2 |
Sub 終わる0601() |
|
|
|
|
|
|
|
Dim
警告 |
|
|
|
|
|
|
|
警告 = MsgBox("owaru-OK?", vbOKCancel,
"owaru") |
|
|
|
|
|
|
|
If
警告 = vbOK Then |
|
|
|
|
|
|
|
Application.Quit |
アプリを終わる |
|
|
|
|
|
|
Else |
|
|
|
|
|
|
|
Exit Sub |
終わらないとき,エラーにならないよう、VBAを終わらせないようにする。 |
|
|
|
|
|
|
End
If |
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
2022/5/18 |
Sub
ruikei_2() ’FOM_VBAのP149練習問題4 |
|
|
|
|
|
|
|
|
dim kei |
|
|
|
|
|
|
|
Range("C6").Select |
|
|
|
|
|
|
|
kei =
0 |
'kei=0 を書いておくとわかりやすい |
|
|
|
|
|
|
Do
While ActiveCell.Value <> "" |
|
|
|
|
|
|
|
kei = kei + ActiveCell.Value |
'一回目のD6の値→「0+C6(32,500)→32,500」 |
|
|
|
|
|
|
ActiveCell.Offset(0, 1).Value = kei |
’2回目のD7の値→「32500+C7(27,030)→59,530」 |
|
|
|
|
|
|
ActiveCell.Offset(1, 0).Select |
|
|
|
|
|
|
|
Loop |
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022/5/17 |
Sub 行() |
初心者でもわかるExcelマクロ入門!
回数を指定する繰り返し処理をマスター(ダイヤモンド・オンライン)
- Yahoo!ニュース |
|
|
|
|
|
|
Range("1:1").Select |
|
|
|
|
|
|
|
Do |
|
|
|
|
|
|
|
Selection.Insert |
|
|
|
|
|
|
|
Selection.Offset(2, 0).Select |
Range("1:1").Select で行選択してもOffset(2,0)で2行下が選択できる。 |
|
|
|
|
|
|
i = i + 1 |
|
|
|
|
|
|
|
Loop
Until i = 3 |
Do while では最初に条件非成立のため動かない |
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
2022/5/16 |
Sub kekka() |
|
|
|
|
|
|
|
Dim i |
|
|
|
|
|
|
|
'For
i = 1 To 5 |
Range("E6").Select の前に来るとうまく動かない |
|
|
|
|
|
|
Range("E6").Select |
|
|
|
|
|
|
|
For i = 1
To 5 |
|
|
|
|
|
|
|
If
ActiveCell.Offset(0, -1).Value >= 80 Then |
|
|
|
|
|
|
|
ActiveCell.Value = "OK" |
|
|
|
|
|
|
|
Else |
|
|
|
|
|
|
|
ActiveCell.Value = "NO" |
|
|
|
|
|
|
|
End
If |
|
|
|
|
|
|
|
ActiveCell.Offset(1, 0).Select |
|
|
|
|
|
|
|
Next |
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
2022/5/16 |
1行挿入 |
VBAで行挿入を行う:ExcelVBA
Rangeオブジェクト/行・列を表すRange
(relief.jp) |
|
|
|
|
|
|
Selection.Insert または Rows(10).Insert |
「Rows(row_a & ":" &
row_z)」は「Rows("10:15")」と同じ意味 |
|
|
|
|
|
|
(選択行に1行挿入、10行に1行挿入 |
(↑「 row_a, row_z」は変数row_a
=10, row_b =15) |
|
|
|
|
|
2022/5/11 |
グラフ作る AddChart2はExcel2013からのコード |
|
|
|
|
|
|
|
ActiveSheet.Shapes.AddChart2(297, xlColumnStacked).Select |
|
|
|
|
|
|
|
297とxlColumnStackedはセット。数値が不明時は「-1」または省略。ただし、xlColumnStackedの前に「,」がいる。 |
|
|
|
|
|
|
2022/5/21 |
Sub sakujyo() 'グラフを削除する |
|
|
|
|
|
|
|
'先にグラフを選択しておくこと |
|
|
|
|
|
|
|
ActiveChart.Parent.Delete |
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022/5/11 |
select case の書式 |
|
|
|
|
|
|
|
Select Case Range("F5").Value |
|
|
|
|
|
|
|
Case "縦棒" |
|
|
|
|
|
|
|
種類 = xlColumnClustered |
|
|
|
|
|
|
|
End Select |
|
|
|
|
|
|
2022/5/9 |
無限ループから抜け出す |
|
|
|
|
|
|
|
Ctrl + Pause を押すとデバッグや終了が選べる |
|
|
|
|
|
|
2022/5/7 |
Sub msi() |
|
|
|
|
|
|
|
Dim i |
|
|
|
|
|
|
|
For i
= 1 To 3 |
|
|
|
|
|
|
|
MsgBox "qqq" |
msgbox に「i」が含まれて無くてもFor
で指定しているので3回繰り返す |
|
|
|
|
|
|
Next |
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022/5/7 |
Sub kurikaesi() |
入力済みセルが有る間、「○kai」の表示を繰り返す(1kai、2kai、3kai・・・) |
|
|
|
|
|
|
Dim i |
|
|
|
|
|
|
|
i =
1 |
まず変数「1」をセット |
|
|
|
|
|
|
Cells(7, 3).Select |
|
|
|
|
|
|
|
Do
While ActiveCell.Value <> "" |
1つ目のアクティブセルが入力済みの時 |
|
|
|
|
|
|
MsgBox i & "kai" |
「1」kai と表示、activecell.offfset
の後でも同じ動作する |
|
|
|
|
|
|
i
= i + 1 |
1回目の表示後、変数「i」に何回目かをセット |
|
|
|
|
|
|
ActiveCell.Offset(0, 1).Select |
|
|
|
|
|
|
|
Loop |
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
2022/5/5 |
Sub 値減らす() |
|
|
|
|
|
|
|
Dim i |
|
|
|
|
|
|
|
Cells(16, 3).Select |
|
|
|
|
|
|
|
For i
= 300 To 100 Step -50 |
'For
i = 100 To 300 Step -50 エラーになる |
|
|
|
|
|
|
ActiveCell.Value = i |
|
|
|
|
|
|
|
ActiveCell.Offset(0, 1).Select |
|
|
|
|
|
|
|
Next |
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
2021/5/3 |
Sub kurikasi() |
|
|
|
|
|
|
|
Dim i |
|
|
|
|
|
|
|
Cells(15,
3).Select |
セルを指定しないときは、アクティブセルから右に数値が入る。 |
|
|
|
|
|
|
For i = 100
To 300 Step 50 |
|
|
|
|
|
|
|
ActiveCell.Value = i |
|
|
|
|
|
|
|
ActiveCell.Offset(0, 1).Select |
|
|
|
|
|
|
|
Next |
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
2021/5/3 |
ActiveWindow.DisplayGridlines = True |
←目盛り線表示(HTMLで保存したらマクロは保存出来ない)クイックアクセスに入れた |
|
|
|
|
|
2021/5/1 |
Sub point() |
|
|
|
|
|
|
|
Range("J16").Select |
|
|
|
|
|
|
|
Do
While ActiveCell.Value <> "" |
|
|
|
|
|
|
|
Select Case ActiveCell.Value |
|
|
|
|
|
|
|
Case Is >= 1000 |
|
|
|
|
|
|
|
ActiveCell.Offset(0, -1).Value = "syouhinnken" |
|
|
|
|
|
|
|
Case Is >= 800 |
|
|
|
|
|
|
|
ActiveCell.Offset(0, -1).Value = "tosytoken" |
|
|
|
|
|
|
|
End
Select |
|
|
|
|
|
|
|
ActiveCell.Offset(1, 0).Select |
End とLoopの間に入れること。でないとアクティブセルが下へ動かない。 |
|
|
|
|
|
|
Loop |
500、200は割愛 |
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
2021/4/16 |
Sub A1からC9へとぶ() |
FOMのP.82 |
|
|
|
|
|
|
Range("A1").Offset(8,
2).Select |
左、上の時は「マイナス-」を指定する |
|
|
|
|
|
|
End Sub |
自分を基準にするので自分からいくつ移動するかを指定する。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
2021/4/16 |
Sub
セル選択と行番号行数() |
FOMのP.81 |
|
|
|
|
|
|
Range("B5").End(xlToRight).Select |
B5の右末端セルを選択 |
|
|
|
|
|
|
MsgBox Range("F5,F6").Row |
F5:F6の行番号を求めるのはRow。列番号はColumn |
|
|
|
|
|
|
MsgBox Range("a5:f5").Columns.Count |
A5:F5の列数を求める |
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021/4/6 |
Sub 行選択() |
PERSONAL.XLSB-モジュール1 にあり |
|
|
|
|
|
|
Range(Rows(3),
Rows(4)).Interior.ColorIndex = 1 |
赤字のどちらでも3~4行塗りつぶして選択できる |
|
|
|
|
|
|
Rows("3:4").Select |
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
2021/4/6 |
Sub 塗り潰し無し() |
PERSONAL.XLSB-モジュール1 にあり |
|
|
|
|
|
|
Selection.Interior.ColorIndex = 0 |
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
2021/4/6 |
Sub 列を選択する() |
|
|
|
|
|
|
|
Range(Columns(14), Columns(15)).Interior.Color = RGB(100, 100, 10) |
'N~O列選択 |
|
|
|
|
|
|
Columns(7).Interior.ColorIndex = 9 |
'G列選択 |
|
|
|
|
|
|
Columns("H:I").Interior.ColorIndex = 3 |
'H~I列選択 |
|
|
|
|
|
|
Range(Columns("K"),
Columns("K")).Interior.ColorIndex = 12 |
'K列選択 Columns("K:K").Interior.ColorIndex
= 9でもOK |
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
2021/4/5 |
セル範囲の指定方法のキャプチャ |
|
|
|
|
|
|
2021/4/4 |
Range("")で表した範囲 |
|
|
|
|
|
|
|
Sub 範囲選択() |
|
|
|
|
|
|
|
Range("B2", "C5").Borders.LineStyle = True |
'B2:C5を返す→range("B2:C5") または range("B2","C5") |
|
|
|
|
|
|
Range("B2:C5").Borders.LineStyle = False |
'B2:C5を返す→range("B2:C5") または range("B2","C5") |
|
|
|
|
|
|
Range("B3,C5").Interior.ColorIndex = 3 |
'
B3とC5を返す→range("B3,C5") |
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021/4/3 |
Sub 列行選択() |
【エクセルVBA】指定範囲をコピー&ペーストする
- ISA PC SCHOOL Official Blog (isa-school.net) |
|
|
|
|
|
|
Range("1:3").Interior.ColorIndex = 3 |
1~3行目選択 |
|
|
|
|
|
|
Range("A:C").Interior.ColorIndex = 5 |
A~C列選択 |
|
|
|
|
|
|
End Sub |
あああ |
|
|
|
|
|
2021/4/3 |
Sub kopi() |
【エクセルVBA】指定範囲をコピー&ペーストする
- ISA PC SCHOOL Official Blog (isa-school.net) |
|
|
|
|
|
|
Range("b2").Copy Range("C2") |
Range("b2").Copy Destination:=
Range("C2") |
|
|
|
|
|
|
End Sub |
Copyメソッドの引数はDestinationだけで、既定の引数になっているので省略可能 |
|
|
|
|
|
2021/4/2 |
Sub ねこ() '画像の挿入 |
For i
で回数を指定するとき、ForとNextの間に「i」なしでも指定した回数を繰り返す |
|
|
|
|
|
|
For i
= 1 To 3 |
|
|
|
|
|
|
ActiveSheet.Pictures.Insert("C:\Users\tomoko\Desktop\招き猫小.jpg").Select |
|
|
|
|
|
|
|
Cells(i,
2).Select |
|
|
|
|
|
|
|
Next |
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021/4/2 |
Option Explicitが出ない。ツールー変数宣言にチェック入れる |
|
|
|
|
|
|
|
それでも出ないときは、「Option
Explicit」とトップに入力→dim・・・エンターで共通dimが入る |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021/4/2 |
Sub 猫入れる() |
|
|
|
|
|
|
|
Pictures.Insert
("C:\Users\tomoko\Desktop\招き猫小.jpg") |
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
2021/4/2 |
Sub 線を引く() |
FMO P.71~75 |
|
|
|
|
|
|
With
Selection.Borders |
Borders.LineStyle=True でセルの周囲すべてに線を引く |
|
|
|
|
|
|
.LineStyle = xlDouble |
Borders.LineStyle=False でセルの周囲すべてに線を削除 |
|
|
|
|
|
|
.Color = vbRed |
|
|
|
|
|
|
|
End With |
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021/3/30 |
Sub
選択範囲の周りに罫線を引く() '21/3/30 |
FOM P.71 以降に罫線関連掲載あり |
|
|
|
|
|
|
Selection.BorderAround LineStyle:=xlDouble |
LineStyleとWeight動じに指定すると一方が引かれる |
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
2021/3/30 |
sub
選択範囲の周りに太い罫線を引く() |
xlContinous →一重線、xlLineStyleNone→線無し |
|
|
|
|
|
|
Selection.BorderAround Weight:=xlThick ’一重太線を引く |
xlCouble→二重線、xlDash→破線、xlDot→点線など |
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
2021/3/30 |
Sub
各セル左右上下罫線一括で二重線引く() |
|
|
|
|
|
|
|
Selection.Borders.LineStyle = xlDouble |
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
2021/3/31 |
Sub
罫線一括で消す_各セル上下左右() |
|
|
|
|
|
|
|
Selection.Borders.LineStyle = False |
'xlNoneでもOK |
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
2021/3/30 |
Sub 全セル選択() |
|
|
|
|
|
|
|
Cells.Select |
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
2021/3/29 |
Sub
選択行_セル削除() |
'離れたセル・行を選択したら一度に削除できる |
|
|
|
|
|
|
Selection.Delete Shift:=xlUp |
|
|
|
|
|
|
|
Range("A1").Select |
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
2021/3/27 |
複数行、列選択 |
|
|
|
|
|
|
|
Range(Rows(1), Rows(3)).Select |
1-3行選択 |
|
|
|
|
|
|
Range(Columns(1), Columns(3)).Select |
1-3列選択 |
|
|
|
|
|
2021/4/3 |
Sub 上へ複数行挿入() |
PERSONALのモジュール1にあり |
|
|
|
|
|
|
Dim
i, n |
'セルを選択していても挿入できる |
|
|
|
|
|
|
n
= InputBox("追加する行数") |
|
|
|
|
|
|
|
i
= ActiveCell.Cells.Row |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Rows(i).Copy |
条件付き書式を新しい行にも設定するためコピーする |
|
|
|
|
|
|
Rows(i & ":" & i + n - 1).Insert |
選択した行から挿入希望行数を挿入するが |
|
|
|
|
|
|
Rows(i & ":" & i + n - 1).Select |
「 i & ":" & n
」にするとおかしくなるので「i+n-1」 |
|
|
|
|
|
|
With
Selection |
|
|
|
|
|
|
|
.PasteSpecial xlPasteAllMergingConditionalFormats |
条件付き書式を貼り付ける |
|
|
|
|
|
|
.ClearContents |
コピーしたセルのデータを削除 |
|
|
|
|
|
|
.Interior.ColorIndex = 0 |
|
|
|
|
|
|
|
.Font.Bold = False |
|
|
|
|
|
|
|
.HorizontalAlignment = xlGeneral |
|
|
|
|
|
|
|
.Font.ColorIndex = xlAutomatic |
|
|
|
|
|
|
|
.Font.Size = 11 |
|
|
|
|
|
|
|
End
With |
|
|
|
|
|
|
|
Cells(i, 1).Select |
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021/3/27 |
Sub
上へ複数行挿入() |
PERSONALのモジュール1にあり |
|
|
|
|
|
|
Dim i, n |
'セルを選択していても挿入できる |
|
|
|
|
|
|
n
= InputBox("追加する行数") |
|
|
|
|
|
|
|
i
= ActiveCell.Cells.Row |
|
|
|
|
|
|
|
Rows(i & ":" & i + n - 1).Insert |
選択した行から挿入希望行数を挿入するが |
|
|
|
|
|
|
Rows(i & ":" & i + n - 1).Select |
「 i & ":" & n
」にするとおかしくなるので「i+n-1」 |
|
|
|
|
|
|
With Selection |
|
|
|
|
|
|
|
.Interior.ColorIndex = 0 |
|
|
|
|
|
|
|
.Font.Bold = False |
|
|
|
|
|
|
|
’’ .NumberFormatLocal = "G/標準" |
ユーザー書式や入力規則が消えるので取り消す。 |
|
|
|
|
|
|
.HorizontalAlignment = xlGeneral |
|
|
|
|
|
|
|
.Font.ColorIndex = xlAutomatic |
|
|
|
|
|
|
|
.Font.Size = 11 |
|
|
|
|
|
|
|
End With |
|
|
|
|
|
|
|
Cells(i, 1).Select |
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
2021/3/27 |
Sub
上へ複数行追加() |
|
|
|
|
|
|
|
Dim
i, n |
|
|
|
|
|
|
|
i
= ActiveCell.Cells.Row |
|
|
|
|
|
|
|
n
= InputBox("gyousuu") |
|
|
|
|
|
|
|
Rows(i
& ":" & i + n - 1).Insert |
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
2021/3/25 |
Sub 上へ1行挿入() |
PERSONALのモジュール1にあり |
|
|
|
|
|
|
Dim
i |
|
|
|
|
|
|
|
i =
ActiveCell.Cells.Row |
|
|
|
|
|
|
|
Rows(i).Select |
|
|
|
|
|
|
|
Selection.Insert Shift:=xlDown |
Shift:=xlDown なくても動くらしい |
|
|
|
|
|
|
Rows(i).Select |
|
|
|
|
|
|
|
With
Selection |
|
|
|
|
|
|
|
.Interior.ColorIndex = 0 |
|
|
|
|
|
|
|
.Font.Bold = False |
|
|
|
|
|
|
|
.NumberFormatLocal = "G/標準" |
|
|
|
|
|
|
|
.HorizontalAlignment = xlGeneral |
←水平位置のデフォルトの値は「xlGeneral」 |
|
|
|
|
|
|
.Font.ColorIndex = xlAutomatic |
|
|
|
|
|
|
|
.Font.Size = 11 |
|
|
|
|
|
|
|
End
With |
|
|
|
|
|
|
|
Cells(i, 1).Select |
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
2021/3/25 |
Sub セル周囲に普通の線を引く() |
Selection.BorderAround
LineStyle:=True でもOK |
|
|
|
|
|
|
Selection.Borders.LineStyle = True |
FOM P71 |
|
|
|
|
|
|
''周囲に線が引かれる |
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
2021/3/23 |
Sub 全選択と解除() |
0 |
|
|
|
|
|
|
Cells.Select
'セル全選択 |
|
|
|
|
|
|
|
'ActiveCell.Select
全選択セル解除→A1選択 |
|
|
|
|
|
|
|
MsgBox ActiveCell.Cells.Row |
|
|
|
|
|
|
|
'アクティブセルA1の行番号取得 |
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
2021/3/23 |
Sub 一行削除() |
|
|
|
|
|
|
|
Dim i |
|
|
|
|
|
|
|
i =
ActiveCell.Row |
一行の行番号を引き出すときは Row |
|
|
|
|
|
|
'↑
アクティブセルの行番号取得 |
一列の列番号を引き出すときは Column |
|
|
|
|
|
|
Rows(i).Select |
|
|
|
|
|
|
|
Selection.Delete Shift:=xlUp |
|
|
|
|
|
|
|
Range("A1").Select |
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
2021/3/23 |
Sub 行数える() |
|
|
|
|
|
|
|
'A3:B6の行数数える→4 |
|
|
|
|
|
|
|
MsgBox Range("a3:b6").Rows.Count |
|
|
|
|
|
|
|
Range("a1").Select |
|
|
|
|
|
|
|
'選択セルの行数数える |
|
|
|
|
|
|
|
MsgBox Selection.Rows.Count |
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
2021/3/23 |
Sub 行数える2() |
|
|
|
|
|
|
|
'A3:B6の行数数える→4 |
|
|
|
|
|
|
|
Range("a3:b6").Select |
|
|
|
|
|
|
|
'選択セルの行数数える |
|
|
|
|
|
|
|
MsgBox Selection.Rows.Count |
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
2021/3/23 |
Sub
選択した行数数えてA1に代入() |
|
|
|
|
|
|
|
Dim
i |
|
|
|
|
|
|
|
'「i」は選択部分の行数 (例 D1:E5とする) |
|
|
|
|
|
|
|
Cells(1, 1) = Selection.Rows.Count |
選択部分の行数を数え、A1に行数
5 入れる |
|
|
|
|
|
|
i =
Selection.Rows.Count |
数えた行数
5 を i に代入 |
|
|
|
|
|
|
Cells(i, 2) = i |
B5に行数
5 を入れる |
|
|
|
|
|
|
'B列の選択行数のセルに行数を代入 |
|
|
|
|
|
|
|
End Sub |
|
|
|
|
|
|
2021/9/1 |
最下行(トップ)を選ぶ(一体型パソ)→Ctrl+Fn+End(Home) |
|
|
|
|
|
|
2022/2/6 |
Columns,rows |
Range以外の指定方法(Cells,Rows,Columns)|VBA入門
(excel-ubara.com) |
|
|
|
|
|
|
Rows(5) 5行目の行全体になります。 |
|
|
|
|
|
|
|
Rows("1:5") 1~5行の5行分全体の範囲 |
|
|
|
|
|
|
|
Columns(3) C列の全体になります |
Column→列番号が取れる、Columuns()→何列目の列全体を指定する |
|
|
|
|
|
|
数値指定の場合は複数列の指定はできません |
|
|
|
|
|
|
|
Columns("A:C") A列~C列の3列の指定 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|