Excelノート 15-1 セルのデータ

HOME  検索  索引  もくじ  関数目次ージへ        次ページへ

タイトル欄のアドレスは、エクセルファンクラブの該当する頁へのリンク先です。
詳しい事は、こちらの
お願いをご覧になってください。

1  7555と数値入力したら 07-555、7055と入力したら 07- 55、7005と入力したら 07- 5
2  半角英数カナを全角英数カナに一括変換するには
3  ゼロの値を表示しない
4  2つのセル内の文字を1つのセルにまとめたい
5  セルをダブルクリックして、○をつけたりけしたりするには
6  小文字を大文字に、大文字を小文字に変換するには?
7  マウスでダブルクリックしたときに、セルに記号(例:※)を入力するには
8  郵便番号を入れて、住所を出すには
9  金種表を作るには
10 基本は%表示で、、値が「0」の時は非表示にしたい
11 1つのセル内のデータを2列以上に分割するには
12 セルの内容をクリアするには
13 i が I に、(c) が ? に、(r) が ? に、勝手に変換されてしまう
14 選択範囲の最大値・最小値
15 最大値、最小値を選んで 色を付けるには
16 クリックした(選択し)セルのデータを常に、"A1"セルに表示するには
17 マウスでクリックした金額だけを合計したい
18 Aに1、B1に+、C1に2、と入っている場合、D1を3にするには
19 ふりがなのみを別のセルに抽出するには
20 10桁の数字を、Enterを押さないで1つずつ別のセルに入力するには

1 7555と数値入力したら 07-555、7055と入力したら 07- 55、
7005と入力したら 07- 5
Excel97、Excel2000 共通
 A1にデータが入っていた場合
  =TEXT(INT(A1/1000),"00-")&RIGHT(" "&MOD(A1,1000),3)
2 半角英数カナを全角英数カナに一括変換するには
Excel97、Excel2000 共通
 =JIS(変換したいセル)
Sub 選択範囲の半角英数カナを全角に()
 Dim rs As Range
 For Each rs In Selection
  rs.Value = StrConv(rs.Value, vbWide)
 Next
End Sub
Sub 選択シートの全セルの半角英数カナを全角に()
 Dim rs As Range
 For Each rs In ActiveSheet.UsedRange
  rs.Value = StrConv(rs.Value, vbWide)
 Next
End Sub
Sub 全てのシートの全てのセルの半角英数カナを全角に()
 Dim rs As Range, Sh As Worksheet
 For Each Sh In Worksheets
  Sh.Select
  For Each rs In ActiveSheet.UsedRange
   rs.Value = StrConv(rs.Value, vbWide)
  Next rs
 Next Sh
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
3 ゼロの値を表示しない
Excel97、Excel2000 共通
 ツール>オプション>表示>ゼロ値 のチェックを外せばそのシートのゼロは全部消えます。
該当セルを選択し、[書式]-[セル] の「表示形式」タブでユーザー定義を選び、
種類のテキストボックスに # と記入します。
4 2つのセル内の文字を1つのセルにまとめたい
Excel97、Excel2000 共通
 A1セルとB1セルの中味をつないでC1セルに書かせるという場合、
  =CONCATENATE(A1,B1)
Excel97、Excel2000 共通
  =A1&B1
5 セルをダブルクリックして、○をつけたりけしたりするには
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 Dim CurShape As Shape
 Cancel = True
 For Each CurShape In Shapes
  If CurShape.TopLeftCell.Address = Target.Cells(1, 1).Address Then
   CurShape.Delete
   Exit Sub
  End If
 Next
 With Target
  Shapes.AddShape(msoShapeOval, .Left, .Top, .Width, .Height).Fill.Visible = msoFalse
 End With
End Sub

下のコードは、BCD列でセルをダブルクリックすると、そのセルの先頭に「赤丸」が付きます。
再度ダブルクリックでリセットになります。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 If Target.Column = 1 Or Target.Column > 4 Then Exit Sub
 Select Case Left(Target.Value, 1)
  Case Is <> "○"
   Target.Value = "○" & Target.Value
   Target.Characters(1, 1).Font.ColorIndex = 3
  Case "○"
   Target.Value = Right(Target.Value, Len(Target.Value) - 1)
   Target.Font.ColorIndex = 1
 End Select
 Cancel = True
End Sub

  このコードの使い方は、マクロの使い方(2)該当するシートのモジュールにあります。
6 小文字を大文字に、大文字を小文字に変換するには?
Excel97、Excel2000 共通
 A1にデータがある場合、他のセルに
  =UPPER(A1) とすると 大文字 に変換した値が表示されます。
  =LOWER(A1) とすると 小文字 に変換した値が表示されます。
 この場合、大文字小文字が混ざっていても、全てどちらかに統一して表示されます
Sub test()
  Dim S1 As String, S2 As String
  S1 = UCase("abcde")  
'小文字を大文字に
  S2 = LCase("ABCDE")  
'大文字を小文字に
  MsgBox S1 & " " & S2
End Sub
  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
Sub test3()
 Dim x(2) As String
 With Worksheets("Sheet1")
 x(1) = StrConv(.Cells(1, 3).Value, vbUpperCase)
 '小文字を大文字に
 x(2) = StrConv(.Cells(1, 4).Value, vbLowerCase)
 '大文字を小文字に
 MsgBox x(1) & " " & x(2)
 End With
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
7 マウスでダブルクリックしたときに、セルに記号(例:※)を入力するには、
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
 Target.Value = "※"
End Sub

  このコードの使い方は、マクロの使い方(2)該当するシートのモジュールにあります。
8 郵便番号を入れて、住所を出すには
http://cgi.fuji.ne.jp/~fj2094/cgi-bin1/wwwlng.cgi?print+200102/01020251.txt
  「指導よろしくお願いします。」 【編集ラウンジ】
http://www.ae.wakwak.com/~efc21/cgi-bin/wwwlng.cgi?print+200205/02050158.txt 
  「郵便番号を入力すると、下のセルに住所テキストで表示する方法」 【VBAラウンジ】
郵便番号変換ウィザード (Excel 2000 用)  マイクロソフト ダウンロードセンター
Excel97、Excel2000 共通
IMEツールバーの「般」のところをクリック、「人名/地名」を選択します。
(IMEプロパティの郵便番号辞書のチェックを外している場合、それもONにしておきます)
セルに例えば、169-0075 と入力し変換(スペース)キーを押すと、「東京都新宿区高田馬場」に変換されます。
Excel97、Excel2000 共通
IMEプロパティの郵便番号辞書をONにします。
IMEツールバーの「般」のところをクリック、「人名/地名」を選択します。
(IMEプロパティの郵便番号辞書のチェックを外している場合、それもONにしておきます)
下のコードを書き込んだシートで、B2に郵便番号(492-8269)を入力し?Enter?もしくは?他のセルを選択すると
B3に住所を表示します

Private Sub Worksheet_Change(ByVal Target As Range)
 On Error GoTo ErrorLine
 If Target.Address(False, False) = "B2" Then
  With Target.Offset(1).Validation
   .Delete
   .Add Type:=xlValidateInputOnly
   .IMEMode = xlIMEModeHiragana
  End With
  Target.Offset(1).Select
  SendKeys Target.Value
  SendKeys "{ }"
  SendKeys "{ENTER}"
 End If
ErrorLine:
End Sub
  このコードの使い方は、マクロの使い方(2)該当するシートのモジュールにあります。
9 金種表を作るには
http://cgi.fuji.ne.jp/~fj2094/cgi-bin1/wwwlng.cgi?print+200012/00120103.txt
  「金額入力を紙幣と硬貨別々に把握するには」 【編集ラウンジ】
Excel97、Excel2000 共通
このような表がある場合
   A    B     C     D    E     F   G    H     I    J    K
1 金額  万円  5千円  2千円  千円  5百円 百円  50円  10円  5円  1円
A2 に  =INT(A2/10000)
B2 に  =INT((A2-B2*10000)/5000)
C2 に  =INT((A2-B2*10000-C2*5000)/2000)
D2 に  =INT((A2-B2*10000-C2*5000-D2*2000)/1000)
E2 に  =INT((A2-B2*10000-C2*5000-D2*2000-E2*1000)/500)
F2 に  =INT((A2-B2*10000-C2*5000-D2*2000-E2*1000-F2*500)/100)
G2 に  =INT((A2-B2*10000-C2*5000-D2*2000-E2*1000-F2*500-G2*100)/50)
H2 に  =INT((A2-B2*10000-C2*5000-D2*2000-E2*1000-F2*500-G2*100-H2*50)/10)
I2  に  =INT((A2-B2*10000-C2*5000-D2*2000-E2*1000-F2*500-G2*100-H2*50-I2*10)/5)
J2 に  =A2-B2*10000-C2*5000-D2*2000-E2*1000-F2*500-G2*100-H2*50-I2*10-J2*5
 10 基本は%表示で、、値が「0」の時は非表示にしたい
Excel97、Excel2000 共通
書式、セル、表示形式、ユーザー定義で、種類の所に下のように入れます。
 #%;-#%;#;
 11 1つのセル内のデータを2列以上に分割するには
Excel97、Excel2000 共通
 分割したいセルを選択し、[データ]、[区切位置]で設定します。
Excel97、Excel2000 共通
 A1セルに 082-222-2333という形式で入力された電話番号を分割します
 B1セルに =MID(A1,1,FIND("-",A1)-1)
 C1セルに =MID(A1,FIND("-",A1)+1,LEN(A1))
082-222-2333という形式で入力された電話番号を、082 と 222 と 2333 に3分割します
Sub 分割()
Dim TargetRange As Range
Dim r As Range
Dim CellValue As Variant
Dim StartPos As Integer
Dim NextPos As Integer
Dim ColCount As Integer
With ActiveSheet
Set TargetRange = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp))
End With
For Each r In TargetRange
CellValue = r.Value
StartPos = 1
ColCount = 1
Do
NextPos = InStr(StartPos, CellValue, "-", vbTextCompare)
If NextPos = 0 Then
r.Offset(0, ColCount).Value = "'" & Mid(CellValue, StartPos, Len(CellValue))
Exit Do
Else
r.Offset(0, ColCount).Value = "'" & Mid(CellValue, StartPos, NextPos - StartPos)
StartPos = NextPos + 1
ColCount = ColCount + 1
End If
Loop
Next
Set TargetRange = Nothing
Set r = Nothing
End Sub
082-222-2333という形式で入力された電話番号を、082 と 222-2333 に2分割します
Sub 分割()
 Dim intRow As Integer
 Dim vntValue As Variant
 intRow = ActiveSheet.UsedRange.row
 For intCount = 1 To intRow
  
'現在のセルの値
  vntValue = Cells(intCount, 1).Value
  If InStr(vntValue, "-") <> 0 Then
   
'市外局番(先頭に ' をつけて文字列にします)
   Cells(intCount, 2).Value = "'" & Left(vntValue, InStr(vntValue, "-") - 1)
   Cells(intCount, 3).Value = Right(vntValue, Len(vntValue) - InStr(vntValue, "-"))
  End If
 Next
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
A1に123456789とあり、それをB1に123、C1に456、D1に789というふうに分けます。
Sub test()
 Cells(1, 2).Value = Left(Cells(1, 1).Value, 3)
 Cells(1, 3).Value = Mid(Cells(1, 1).Value, 4, 3)
 Cells(1, 4).Value = Right(Cells(1, 1).Value, 3)
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
 12 セルの内容をクリアするには
Clearメソッド Range オブジェクトの場合、オブジェクト全体をクリアします。
ClearFormatsメソッド 書式をクリアします。
ClearContentsメソッド 選択範囲から数式と文字をクリアします。
また、グラフからグラフの書式を残したままデータ (系列) をクリアします。
 13 i が I に、(c) が ? に、(r) が ? に、勝手に変換されてしまう
Excel97、Excel2000 共通
ツール、オートコレクト、入力中にオートコレクトのチェックを外すか
該当する文字列を削除します。
 14 選択範囲の最大値・最小値
Sub 選択範囲最大値()
 Dim myRange As Range, answer As Long
 Set myRange = Selection
 answer = Application.WorksheetFunction.Max(myRange)
 MsgBox answer
End Sub
Sub 選択範囲最小値()
 Dim myRange As Range, answer As Long
 Set myRange = Selection
 answer = Application.WorksheetFunction.Min(myRange)
 MsgBox answer
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
 15 最大値、最小値を選んで 色を付けるには
Sub 複数の最大最小値の文字色を変える()
 Dim seru As Range
 For Each seru In Selection
  If seru.Value = Application.WorksheetFunction.Max(Selection) Then
   seru.Font.ColorIndex = 3
  ElseIf seru.Value = Application.WorksheetFunction.Min(Selection) Then
   seru.Font.ColorIndex = 10
  Else
   seru.Font.ColorIndex = xlColorIndexAutomatic
  End If
 Next seru
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
Sub 複数の最大最小値のセル塗りつぶし色を変える()
 Dim seru As Range
 For Each seru In Selection
  If seru.Value = Application.WorksheetFunction.Max(Selection) Then
   seru.Interior.ColorIndex = 3
  ElseIf seru.Value = Application.WorksheetFunction.Min(Selection) Then
   seru.Interior.ColorIndex = 10
  Else
   seru.Interior.ColorIndex = xlColorIndexNone
  End If
 Next seru
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
16 クリックした(選択し)セルのデータを常に、"A1"セルに表示するには
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 Application.EnableEvents = False
 Range("A1").Value = ActiveCell.Value
 Application.EnableEvents = True
End Sub

  このコードの使い方は、マクロの使い方(2)該当するシートのモジュールにあります。
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
 If Target.Row = 1 And Target.Column = 1 Then Target.ClearContents
 Cells(1, 1) = Target
End Sub

  このコードの使い方は、マクロの使い方(2)該当するシートのモジュールにあります。
17 マウスでクリックした金額だけを合計したい
http://www.keep-on.com/~excelyou/2000lng2/200007/00070059.txt
  「セルを電卓のように使うにはどうすればいいですか?」 【その他ラウンジ】
A1〜A5に商品名、B1〜B5に金額(数値)が入っているとします。
C1〜C5に購入個数を表示し、金額合計はD1セルに表示します。
データ範囲(A1〜B5)で右クリックすると、購入個数が1個づつ増加して、D1に合計がでます。
データ範囲でダブルクリックすると、クリアされます。
購入個数を個別に修正する時は、C列の数値を直接変更してください。
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
 If Target.Column > 2 Or Target.Row > 5 Then Exit Sub
 If Target.Value <> "" Then
  Cancel = True
  Select Case Target.Column
   Case 1
    Target.Offset(0, 2).Value = Target.Offset(0, 2).Value + 1
   Case 2
    Target.Offset(0, 1).Value = Target.Offset(0, 1).Value + 1
  End Select
  Range("D1").FormulaArray = "=SUM(C1:C5*B1:B5)"
 End If
End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 If Target.Column > 2 Or Target.Row > 5 Then Exit Sub
  Cancel = True
  Range("C1:C5", "D1").ClearContents
End Sub

  このコードの使い方は、マクロの使い方(2)該当するシートのモジュールにあります。
18 Aに1、B1に+、C1に2、と入っている場合、D1を3にするには
Sub test()
  Range("D1") = Evaluate(Range("A1") & Range("B1") & Range("C1"))
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
19 ふりがなを別のセルに抽出するには
http://www.keep-on.com/~excelyou/2000lng4/200005/00050058.txt
  「ふりがなのみを別のセルにコピーするマクロは?」 【VBAラウンジ】
Excel97、Excel2000 共通
A1のセルに入力した内容の振り仮名を、B1のセルに表示します。
B1のセルに  =PHONETIC(A1)
Private Sub Worksheet_Change(ByVal Target As Range)
 With Target
  If .Column = 1 Then
   Application.EnableEvents = False
   .Offset(0, 1).Value = .Phonetics(1).Text
   Application.EnableEvents = True
  End If
 End With
End Sub
  このコードの使い方は、マクロの使い方(2)該当するシートのモジュールにあります。
20 10桁の数字を、Enterを押さないで1つずつ別のセルに入力するには
 内容が重複してましたので、こちらにまとめましたm(_ _)m

HOME  検索  索引  もくじ  関数目次ージへ        次ページへ

このページのTOPへ

 

 

 

 

 

 

inserted by FC2 system