例えば、

acnas1254acnas1254
jfhgfojfhgfo
ogg12345ogg12345
あかさたなあかさたな

などの文字を

acnas1254
jfhgf
ogg12345
あかさたな

のように続いて繰り返す行の文字を削除したいです。

よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

メニューの「検索」から


「置換」を選択して「正規表現」にチェックを入れて

検索 →^(.*)\1$
置換 →\1

でいけると思います。

老婆心ながら適当な参考書をお読みになってはいかがでしょうか?

秀丸エディタ 正規表現&マクロ厳選テクニック: 本: 阿部 友計
http://www.amazon.co.jp/gp/product/4816338837
編集者・執筆者のための秀丸エディタ超活用術: 本: 西谷 能英
http://www.amazon.co.jp/gp/product/4798109479
秀丸エディタ徹底活用ガイド―マクロと正規表現で秀丸をパワーアップ! Ver.5対応: 本: 下司 智津惠
http://www.amazon.co.jp/gp/product/4798011940

2005年後半の発行でVer.6対応ではありませんが、
5→6で変わったところの影響はそれほどないでしょうから、
使えないことはないと思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QVBA 表作成 続続

以前何度もこの「VBA表作成」というタイトルで何度か質問させていただきました。
前回の締め切りのあと何度もデバック?やってみながら訂正してみたりしたのですが出来ませんでした。
☆詳細(仕様?)
・入力フォームブックで日付を入力すると出力ブックに入力した日付から1ヶ月の日付が表示されます。
・入力データブックがあり入力フォームで入力した日付から1ヶ月の日付で入力データにあるデータを貼り付けます。
・重複したデータは足して表示させます。
☆入力データブック
・B列に日付:日付の下に曜日が表示されています。
・M列に区分:1か2が書いてあります。
・T列に商品名:結合は関係ないとは思いますが、TからAPまで結合されています。
・AQ列に数量:AQからAUまで結合されています。
・BA列にコード:表示上記4つに比べ1行下に表記されていてBAからBDまで結合されています。
☆出力ブック
・BからHまで結合されており、B6に商品名が表示されます。(現時点では商品1つ分しかないので増えるたびに1行ずつセルが結合され挿入されます
・IからKまで結合されており、I6にコードが表示されます。(これも上記と同じ)
・6行目~→区分1の場合・8行目~→区分2の場合に表示します。

(1)出力ブック(以下book)の表は品名とコードを表示する部分が結合されているのですが、挿入され別の値が表示となったときに結合されておらず、コードも表示されませんでした。
(2)入らないはずの所に数値が入ってしまいます。
(3)入るはずの所に値が表示されません(8行目以降の欄)

・品名:B5からH5まで結合されています。
品名が表示されるのはB6からH6までで挿入されるときも結合されて表示されたいです。
・コード:I5からK5まで結合されています。
コードが表示されるのはI6からI6までで挿入されるときも結合されて表示されたいです。

Sub Get_nyuryoku(wDate As String, hNm As String, hCd As String, hKbn As String, s As Integer)

Dim wData As Worksheet
Dim i As Integer
Dim mR As Long

Set wData = Workbooks("入力データ.xls").Worksheets("Sheet1")

With wData
mR = .Cells(Rows.Count, "B").End(xlUp).Row
For i = 3 To mR
If .Cells(i, "B") = wDate Then '←ここで両方の日付を確認
hNm = .Cells(i, "T")  ←商品名
hCd = .Cells(i, "BA") ←コード
hKbn = .Cells(i, "M") ←区分
s = .Cells(i, "AQ")  ←数量
Exit For
End If
Next
End With
End Sub

お手数掛けますがよろしくおねがいします。

他に書かなきゃいけないことがありましたら言ってください。

以前何度もこの「VBA表作成」というタイトルで何度か質問させていただきました。
前回の締め切りのあと何度もデバック?やってみながら訂正してみたりしたのですが出来ませんでした。
☆詳細(仕様?)
・入力フォームブックで日付を入力すると出力ブックに入力した日付から1ヶ月の日付が表示されます。
・入力データブックがあり入力フォームで入力した日付から1ヶ月の日付で入力データにあるデータを貼り付けます。
・重複したデータは足して表示させます。
☆入力データブック
・B列に日付:日付の...続きを読む

Aベストアンサー

こんにちは。
以下の点について教えてください。
(1) 入力データブック上に日付が表示上と実際入力されている内容が同じなのか
  →日付表ブックには、表示は「mm/dd」、実際入力情報としては「yyyy/mm/dd」です。
(2) 入力データブック上の日付は同じ日付が複数存在するのか。
  →複数存在するなら、検索して加算処理が必要

後、セル追加処理時、セルの結合は行ってない「そこまでは知りませんでした」
入力データブックの日付入力形式が、多分文字列ではないでしょう
→文字列ではないと、Find では検索できないので、わざと、Forで回したのです。
 Find を使えば簡単なんだけど・・・

取りあえず、セルの結合処理を追加しましたので、試してみてください。
どうしても、分からない場合は、現在のソース全てを提示くさい。

'商品情報の編集
Sub Edit_Shouhin(wSh2 As Worksheet)
  Dim wC     As Integer
  Dim mC     As Integer
  Dim wDate    As String
  Dim hNm     As String
  Dim hCd     As String
  Dim hKbn    As String
  Dim hSu     As Integer
  Dim sTot1    As Integer
  Dim sTot2    As Integer
  Dim aSum    As Integer
  Dim Kbn1    As Integer
  Dim Kbn2    As Integer
  Dim wI     As Integer
  Dim fflg    As Boolean
  Dim wSu     As Integer
  '
  sTot1 = 7: sTot2 = 9: aSum = 10
  Kbn1 = 6: Kbn2 = 8
  With wSh2
    mC = .Cells(5, 12).End(xlToRight).Column
    For wC = 12 To mC
      wDate = wSh2.Cells(4, wC)
      '商品情報取得
      hNm = "": hCd = "": hKbn = "": hSu = 0   '★←追加
      Call Get_HinData(wDate, hNm, hCd, hKbn, hSu)
      Select Case hKbn
        Case "1"  '区分1
          If .Cells(6, "B") = "" Then
            .Cells(6, "B") = hNm      '商品名
            .Cells(6, "I") = hCd      '商品コード
            .Cells(6, wC) = hSu       '数量
          Else
            fflg = False
            For wI = 6 To Kbn1
              If .Cells(wI, "B") = hNm Then
                .Cells(wI, wC) = hSu  '数量
                fflg = True
                Exit For
              End If
            Next
            If fflg = False Then
              '行の追加
              .Rows(sTot1).Insert Shift:=xlDown
              'セル結合
              Range("B" & sTot1 & ":H" & sTot1).MergeCells = True '★←追加
              Range("I" & sTot1 & ":K" & sTot1).MergeCells = True '★←追加
              .Cells(sTot1, "B") = hNm  '商品名
              .Cells(sTot1, "I") = hCd  '商品コード
              .Cells(sTot1, wC) = hSu   '数量
              Kbn1 = Kbn1 + 1
              Kbn2 = Kbn2 + 1
              sTot1 = sTot1 + 1
              sTot2 = sTot2 + 1
              aSum = aSum + 1
            End If
          End If
        Case "2"  '区分2
          If .Cells(Kbn1 + 2, "B") = "" Then
            .Cells(Kbn1 + 2, "B") = hNm   '商品名
            .Cells(Kbn1 + 2, "I") = hCd   '商品コード
            .Cells(Kbn1 + 2, wC) = hSu   '数量
          Else
            For wI = Kbn1 + 2 To Kbn2
              If .Cells(wI, "B") = hNm Then
                .Cells(wI, wC) = hSu  '数量
                fflg = True
                Exit For
              End If
            Next
            If fflg = False Then
              '行の追加
              .Rows(sTot2).Insert Shift:=xlDown
              'セル結合
              Range("B" & sTot2 & ":H" & sTot2).MergeCells = True '★←追加
              Range("I" & sTot2 & ":K" & sTot2).MergeCells = True '★←追加
              .Cells(sTot2, "B") = hNm  '商品名
              .Cells(sTot2, "I") = hCd  '商品コード
              .Cells(sTot2, wC) = hSu   '数量
              Kbn2 = Kbn2 + 1
              sTot2 = sTot2 + 1
              aSum = aSum + 1
            End If
          End If
      End Select
    Next
    '
    '小計設定(区分1)
    For wC = 12 To mC
      wSu = 0
      For wI = 6 To Kbn1
        wSu = wSu + .Cells(wI, wC)
      Next
      .Cells(sTot1, wC) = wSu
    Next
    '小計設定(区分2)
    For wC = 12 To mC
      wSu = 0
      For wI = Kbn1 + 2 To Kbn2
        wSu = wSu + .Cells(wI, wC)
      Next
      .Cells(sTot2, wC) = wSu
    Next
    '合計設定
    For wC = 12 To mC
      wSu = .Cells(sTot1, wC) + .Cells(sTot2, wC)
      .Cells(aSum, wC) = wSu
    Next
  End With
End Sub
'商品情報取得
Sub Get_HinData(wDate As String, hNm As String, hCd As String, hKbn As String, hSu As Integer)
  Dim wData    As Worksheet
  Dim wI     As Integer
  Dim c      As Range
  '
  Set wData = Workbooks("入力データ.xls").Worksheets("Sheet2") '←実際のブック名とシート名に変更
  With wData
    mR = .Cells(Rows.Count, "B").End(xlUp).Row
    'Set c = .Range("B3:B" & mR).Find(wDate)
    'If Not c Is Nothing Then
    '  hNm = .Cells(c.Row, "T")
    '  hCd = .Cells(c.Row, "BA")
    '  hKbn = .Cells(c.Row, "M")
    '  hSu = .Cells(c.Row, "AQ")
    'End If
    For wI = 3 To mR
      If .Cells(wI, "B") = wDate Then     '←ここで両方の日付を確認してください
        hNm = .Cells(wI, "T")
        hCd = .Cells(wI, "BA")
        hKbn = .Cells(wI, "M")
        hSu = .Cells(wI, "AQ")
        Exit For
      End If
    Next
  End With
End Sub

こんにちは。
以下の点について教えてください。
(1) 入力データブック上に日付が表示上と実際入力されている内容が同じなのか
  →日付表ブックには、表示は「mm/dd」、実際入力情報としては「yyyy/mm/dd」です。
(2) 入力データブック上の日付は同じ日付が複数存在するのか。
  →複数存在するなら、検索して加算処理が必要

後、セル追加処理時、セルの結合は行ってない「そこまでは知りませんでした」
入力データブックの日付入力形式が、多分文字列ではないでしょう
→文字列ではないと、Find では検...続きを読む

Q文字・単語の検索など

自分のパソコンのファイルの文字・単語を検索したり、それを別の文字・単語に置き変えるためのプログラムを作りたいのですが、良い方法はないでしょうか!?

Aベストアンサー

>書き変え(たとえば、多数のファイル内の「リンゴ」という語を一度にすべて「ミカン」にする)
>をしたいのですが、それもできますか・・・!?

まさにそのような用途のために Perl のようなスクリプト言語は使用されています。

QASCII印刷可能文字は何文字?

95文字(種類)と思ってますが合ってますよね?

Aベストアンサー

http://en.wikipedia.org/wiki/ASCII

>The 95 ASCII graphic characters are numbered from 0x20 to 0x7E (32 to 126 decimal).

俺はそれで正しいと思う。(空白も印刷可能扱いとして)

Q「C#」文字コードの取得&文字変換

C#で文字コードを調べるプログラムを作成しています。
そこで2つ質問をさせてください。
1つ目(文字コード調べ)
TextBoxに漢字を入力して,各エンコーディングの文字コードを調べるときに,UNICDEの場合,
Encoding enc_default = Encoding.GetEncoding(932);
string input = tb_input.Text;
byte[] byte_input = enc_default.GetBytes(input);
string outtext_unicode = "";
Encoding enc_unicode = Encoding.Unicode;
byte[] byte_unicode = Encoding.Convert(enc_default,enc_unicode, byte_input);
foreach (byte b in byte_unicode)
{
outtext_unicode += string.Format("{0:X}", (int)b);
}
tb_output_unicode.Text = outtext_unicode;
とすると,調べたい文字コードがLE(リトルエディアン)で出力されます。これをBE(ビッグエディアン)で出力されるにはどうしたらよいでしょうか?
ご存知の方がいらっしゃいましたら,ぜひ教えてください。
よろしくお願いいたします。

2つ目(文字コードから文字を取得する)
上記の質問と逆のパターンで,TextBoxに文字コードを入力してもらい,人間が読める文字に変換する場合下記のようなコードを書くと,
string codePoint_string = tb_output_unicode.Text;
int codePoint = int.Parse(codePoint_string);
char c = (char)codePoint;
tb_input.Text = Convert.ToString(c);
ASCIIの文字コードを入力した場合には,きちんと変換してくれるのですが,漢字の文字コードを入力すると,FormatExceptionが発生します。
何か勘違いをしているのかもしれませんが,いまいちやり方が創造できません。
こちらも,ご存知の方がいらっしゃいましたら,ご教示願います。

C#で文字コードを調べるプログラムを作成しています。
そこで2つ質問をさせてください。
1つ目(文字コード調べ)
TextBoxに漢字を入力して,各エンコーディングの文字コードを調べるときに,UNICDEの場合,
Encoding enc_default = Encoding.GetEncoding(932);
string input = tb_input.Text;
byte[] byte_input = enc_default.GetBytes(input);
string outtext_unicode = "";
Encoding enc_unicode = Encoding.Unicode;
byte[] byte_unicode = Encoding.Convert(enc_default,enc_unicode, byte_input);...続きを読む

Aベストアンサー

フォームデザイナで,
Form1に対し,TextBox1とButton1を貼り付け,以下のコードを入力。
=============================
Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim codePoint_string As String = TextBox1.Text
Dim codePoint As Integer = Integer.Parse(codePoint_string)
Me.Text = Char.ConvertFromUtf32(codePoint)
End Sub
End Class
'=========================
その後
http://homepage3.nifty.com/jgrammar/ja/tools/codeval0.htm
を利用して
文字「あ」がUTF-32で00003042=12354であることを確認後
TextBox1に12354を入力してButtonをクリックしたら
Form1に「あ」が表示された。・・・けどUTF-16だから違うんだよね?
http://msdn2.microsoft.com/en-us/library/wdh8k14a(VS.80).aspx
とか
http://msdn2.microsoft.com/en-us/library/z2ys180b(VS.80).aspx
とか使うのかもしれないけど良く解らん。

フォームデザイナで,
Form1に対し,TextBox1とButton1を貼り付け,以下のコードを入力。
=============================
Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim codePoint_string As String = TextBox1.Text
Dim codePoint As Integer = Integer.Parse(codePoint_string)
Me.Text = Char.ConvertFromUtf32(codePoint)
End Sub
End Class
'========================...続きを読む

Q正規表現での入力文字数と連続文字チェック

教えてください。

正規表現を用いて、
最低入力桁数
使用文字
同一連続文字
の制限を掛けたいと思っています。

以下で、6桁以上で[]内で文字の制限も掛けられていると思っているのですが、

^(?=.{6,})[a-zA-Z0-9]+$

上記に、
111111やAAAAAA といった、連続文字を不可にするのを組み込めません。

過去の質問から以下を認めないといった記述でいけるのではと思っているのですが。
(.)\1{5,}

宜しくお願い致します。

Aベストアンサー

申し訳ありません、最後の2文字が欠けましたので訂正します。

^(?!(.)\1{5,})(?=.{6,})[a-zA-Z0-9]+$


人気Q&Aランキング

おすすめ情報